Android - 如何使用Facebook SDK 4.0.1发表评论

时间:2015-04-29 08:08:23

标签: android facebook facebook-sdk-4.0

有没有办法使用FacebookSDK 4.0.1发表评论。 因为在新SDK中删除了Request。 假设我已登录并获得“publish_actions”权限。

private void facebookLogin() {
    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("user_friends"));
}

private void facebookLogout (){
    LoginManager.getInstance().logOut();
}

private void facebookPost() {
    //check login
    AccessToken accessToken = AccessToken.getCurrentAccessToken();
    if (accessToken == null) {
        Log.d(TAG, ">>>" + "Signed Out");
        status = Status.POST;
        facebookLogin();
        return;
    } else {
        Log.d(TAG, ">>>" + "Signed In");
        status = Status.NONE;
    }
    if (accessToken.getPermissions().contains("publish_actions")) {
        Log.d(TAG, ">>>" + "contain publish_actions");

        //I wanna post a comment in here
    } else {
        Log.d(TAG, ">>>" + "NOT contain publish_actions");

        LoginManager.getInstance().logInWithPublishPermissions(this, Arrays.asList("publish_actions"));
    }
}

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用com.facebook.share.widget.ShareApi类进行共享

ShareApi.share(content,null);

答案 1 :(得分:0)

假设您想在用户墙上发布内容,请使用Open Graph Stories

以下步骤,以便您使用Facebook Post进行操作

1)前往Developer Console

2)注册您的应用程序,创建new登录流程 - 请注意旧的登录流程不适用于SDK 4.0

3)现在,一旦登录正在为您工作,请转到此应用程序的仪表板,从左侧的窗格中选择打开图表。

4)在此处定义您的动作,故事和对象。

5)尽管Facebook已经提供了获取代码的选项,但在“故事”,“动作类型”和“对象类型”旁边 - 请注意,此代码已过时且不起作用。

这对我有用:

我的应用名称是(在开发者控制台上定义)

friendssampleapp

我的行动类型:庆祝 我的对象类型:里程碑

以下是我通过点击按钮发布的代码片段:

            ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "friendsampleapp:milestone")
            .putString("og:title", "A Game of Thrones")
            .putString("og:description", "In the frozen wastes to the north of Winterfell, sinister and supernatural forces are mustering.")
        //  .putPhoto("og:image", photo)
            .build();


            // Create an action
            ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("friendsampleapp:celebrating")
            .putObject("milestone", object)
            .build();

            // Create the content
            ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("milestone")
            .setAction(action)
            .build();

            ShareDialog.show(getActivity(), content); 

答案 2 :(得分:0)

使用以下代码:

Bundle params = new Bundle();
            params.putString("message", "This is a test message");

        new GraphRequest(
                accessToken,
                "/me/feed",
                params,
                HttpMethod.POST,
                new GraphRequest.Callback() {
                    public void onCompleted(GraphResponse response) {
                    }
                }
        ).executeAndWait();