0

我正在使用 Facebook SDK 4.0,我想使用 OpenGraph API 在用户墙上发帖。

我已将 Action 定义为:

  • 庆祝

对象为

  • 里程碑

现在,当我在 Facebook 开发控制台中单击获取代码并切换到 Android 时,我得到以下代码段:

Request request = new Request(
    Session.getActiveSession(),
    "me/objects/friendsampleapp:milestone",
    params,
    HttpMethod.POST
);

Response response = request.executeAndWait();

在这里我无法获得导入响应、请求和会话的选项。

我有一个导入选项,com.facebook.login.LoginClient.Request;但在悬停时有一条红色波浪线表示:The type com.facebook.login.LoginClient is not visible

这里需要注意的一点是,在同一个活动中,我的登录工作正常,所以这不是导入 Facebook 库的问题。

Changelog Facebook 中提到:

Session Removed - AccessToken、LoginManager 和 CallbackManager 类取代并替换了 Session 类中的功能。

我想知道 Facebook 是否希望我梦想着如何将他们的 API 与我的代码接口,当它全部损坏时,以这种速度发布 SDK 对任何人都没有帮助。

我还尝试使用 Facebook 记录错误报告,但似乎对于 facebook,这也被打破了!

编辑:

深入挖掘我已将上面的代码更改为:

Bundle params = new Bundle();
                GraphRequest request = new GraphRequest(AccessToken.getCurrentAccessToken(),"me/objects/friendsampleapp:milestone",params, HttpMethod.POST);
                GraphResponse response = request.executeAndWait();


                Bundle params1 = new Bundle();
                params1.putString("milestone", "http://samples.ogp.me/812890225461181");

                GraphRequest request1 = new GraphRequest(
                        AccessToken.getCurrentAccessToken(),"me/friendsampleapp:celebrating",params,HttpMethod.POST);
                GraphResponse response1 = request.executeAndWait();

但是我很困惑,接下来呢?

4

2 回答 2

1

这是我想出的最后一件事,显然,它确实有效:

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.")

                        .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); 
于 2015-04-30T11:16:45.160 回答
0

因为 facebook 文档很糟糕。在升级指南中,他们展示了如何提出请求

GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(JSONObject user, GraphResponse response) {
                if (user != null) {
                    profilePictureView.setProfileId(user.optString("id"));
                }
            }
    }).executeAsync();

https://developers.facebook.com/docs/android/upgrading-4.x

于 2015-04-30T07:07:21.517 回答