Android的权限下降facebook sdk

时间:2014-05-15 04:07:32

标签: android facebook permissions

在Facebook上为Android应用程序工作。无法获得发布权限。 当我请求许可时,它会被添加到拒绝权限。任何建议。

公共类MainActivity扩展了Activity实现OnClickListener {

private static final String PERMISSION_PUBLISH = "publish_actions";

private TextView textView;
private Button check;
private Button ask;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    textView = (TextView) findViewById(R.id.textView1);
    check = (Button) findViewById(R.id.check_per);
    ask = (Button) findViewById(R.id.get_per);
    check.setOnClickListener(this);
    ask.setOnClickListener(this);
    findViewById(R.id.post).setOnClickListener(this);

    Session.openActiveSession(this, true, new StatusCallback() {

        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if (session != null && session.isOpened()) {
                session.refreshPermissions();
                Request.newMeRequest(session, new GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        updateUi(user);
                    }
                }).executeAsync();
            }
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Session session = Session.getActiveSession();
    if (session != null) {
        session.onActivityResult(MainActivity.this, requestCode, resultCode, data);
        session.refreshPermissions();
    }
    super.onActivityResult(requestCode, resultCode, data);

}

private void showToast(String msg) {
    Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}

public void updateUi(GraphUser graphUser) {
    textView.setText(graphUser.getFirstName());
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.check_per:
        checkForPermission();
        break;
    case R.id.get_per:
        getPermission();
        break;
    case R.id.post:
        post();
        break;
    default:
        break;
    }
}

private void checkForPermission() {
    Session session = Session.getActiveSession();
    if (session != null && session.isOpened()) {
        // --- Shows PEMISSION_PUBLISH in declined permission not in
        // permission granted
        List<String> permissions = session.getDeclinedPermissions();
        showToast("size : " + permissions.size());
        for (int i = 0; i < session.getDeclinedPermissions().size(); i++) {
            showToast("Has permission : " + permissions.get(i));
        }
    }
}

private void getPermission() {
    Session session = Session.getActiveSession();
    if (session != null && session.isOpened()) {
        NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(MainActivity.this, PERMISSION_PUBLISH);
        session.requestNewPublishPermissions(newPermissionsRequest);
    }
}

private void post() {
    Request.newStatusUpdateRequest(Session.getActiveSession(), "Status Update", new Request.Callback() {
        @Override
        public void onCompleted(Response response) {
            if (response != null)
                showToast(response.toString());
        }
    }).executeAsync();
}

}

1 个答案:

答案 0 :(得分:0)

您应该将developers.facebook.com上的应用设置转到状态和审核标签并发送Facebook审核小组的请求,有关详细信息,请参阅https://developers.facebook.com/docs/apps/review/