无法导入请求,会话和响应Facebook SDK 4.0。 [恶劣的文件]

时间:2015-04-29 07:19:13

标签: android facebook-opengraph facebook-android-sdk facebook-sdk-4.0 facebook-graph-api-v2.2

我正在使用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中提到:

  

删除了会话 - 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();

但是我很困惑,下一步是什么?

2 个答案:

答案 0 :(得分: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); 

答案 1 :(得分: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