android - 如何在 android 中使用 facebook sdk 将 facebook 状态直接发布到墙上?

标签 android facebook facebook-graph-api

我有一个 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/

相关文章:

Android 9 (Pie) 只有 : Context. startForegroundService() 然后没有调用 Service.startForeground() - 在 Oreo 上工作正常

android - 从 ListView 调用不同的 Activity ?

javascript - Facebook 发送按钮 - 操纵 popunder div

android - 使用 Facebook SDK 4.1 在 Facebook 上共享带有文本故事的图像

java - 如何在Android中逐行添加连续的布局

php - 如何将Android与PHP和MySQL连接?

objective-c - 禁用 Facebook 帐户中的联系人与 ABAddressBook 同步后,未收到 kABDatabaseChangedExternallyNotification

ios - 如果同时存在 URL 和图像,则 Facebook SLComposeViewController URL 会显示在正文中

javascript - 如何使用 Firebase 获取用户帖子并使用 Facebook 进行身份验证?

facebook - 在哪里可以找到我的 Facebook 受众 ID?