我有一个 Facebook 登录按钮和一个共享按钮来更新我的状态,我可以正确登录,但是当我尝试在我的墙上分享一些文本作为 Facebook 状态时,我的应用程序因 nullpointerexception
而崩溃这是我的状态更新代码:
分享按钮点击监听器:
Session session = Session.getActiveSession();
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
this, Arrays.asList("publish_actions"));
session.requestNewPublishPermissions(newPermissionsRequest);
我的 session 状态更改方法如下所示:
private void onSessionStateChange(Session session, SessionState state,
Exception exception) {
if (state.isOpened()) {
Log.i(TAG, "Logged in...");
bShare.setEnabled(true);
if (state.equals(SessionState.OPENED_TOKEN_UPDATED)
&& shouldAskPermission) {
shouldAskPermission = false;
Log.i(TAG, "opened token updated");
Request.Callback UploadCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
if (response.getError() != null) {
Toast.makeText(getActivity(), "Error Occured",
Toast.LENGTH_LONG).show();
}
Object graphResponse = response.getGraphObject()
.getProperty("id");
if (graphResponse == null
|| !(graphResponse instanceof String)
|| TextUtils.isEmpty((String) graphResponse)) {
Toast.makeText(getActivity(),
"Failed to post Status", Toast.LENGTH_LONG)
.show();
} else {
Toast.makeText(getActivity(), "Status Updated",
Toast.LENGTH_LONG).show();
}
}
};
Request request = Request
.newStatusUpdateRequest(
session,
StatusDetails.et.getText().toString()
.contentEquals("") ? "status from status plus"
: StatusDetails.et.getText().toString(),
UploadCallback);
request.executeAsync();
}
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
// bShare.setVisibility(View.INVISIBLE);
bShare.setEnabled(false);
}
}
但是当我尝试使用我的开发人员 Facebook 个人资料时,我的状态会更新,如果我尝试使用其他一些 Facebook 个人资料发帖,它会在该行中出现空指针异常:
Object graphResponse = response.getGraphObject()
.getProperty("id");
我已经从开发者控制台公开发布了该应用程序,但我不知道现在该怎么做?谁能帮忙?
最佳答案
在您可以对其他配置文件使用 publish_actions
之前,您需要通过审核流程:https://developers.facebook.com/docs/apps/review/login
否则,它仅适用于在应用中具有角色的用户(管理员、开发人员、测试人员)。
关于android - 如何在 android 中使用 facebook sdk 将 facebook 状态直接发布到墙上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27302824/