无法导入请求、会话和响应 Facebook SDK 4.0。 [令人震惊的文档]

Posted

技术标签:

【中文标题】无法导入请求、会话和响应 Facebook SDK 4.0。 [令人震惊的文档]【英文标题】:Cant import Request, Session and response Facebook SDK 4.0. [Egregious Documentation] 【发布时间】:2015-04-29 07:19:13 【问题描述】:

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

我已将 Action 定义为:

庆祝

对象为

里程碑

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

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 库的问题。

在ChangelogFacebook 中提到:

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

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

【问题讨论】:

我什至无法在 Facebook 上填写错误报告,这段代码在他们的新 SDK 中似乎已经过时了。 Facebook 为什么你很烂? 你的问题是什么? @p.streef 你有什么不明白的问题? @p.streef 您不清楚问题的哪一部分? 在最后一次编辑之前,问题“下一步是什么”的解决方案实际上是在问题中。但我猜你想发布一个没有分享对话框的图表故事? 【参考方案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); 

【讨论】:

除了带有 setPreviewPropertyName(...) 的“徽章”之外,还有哪些其他类型?【参考方案2】:

因为 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

【讨论】:

兄弟,这太搞笑了,Facebook 更像是一个鱼市,而不是一个真正的开发公司。 实际上 facebook 文档不仅糟糕,而且可悲。它们会制造混乱而不是解决它们。 您好 WizKid,我已经提到我无法提交错误报告。它坏了!哈哈,你是 Facebook 开发者吗?你提供的链接也坏了!我忍不住笑了! 这是developers.facebook.com/bugs - 每个人有时都会犯错。只需将“facebook bug”放入谷歌就很容易找到,这是第一个结果;) @luschin,伙伴尝试在“正确”链接上提交错误报告。功能坏了!我同意错误是生活的一部分,我对所有帮助或不帮助的人持开放态度。您可以查看我上次说“我无法提交错误报告”的时间以及 WizKid 提供此链接的时间。说了这么多,问题解决了。

以上是关于无法导入请求、会话和响应 Facebook SDK 4.0。 [令人震惊的文档]的主要内容,如果未能解决你的问题,请参考以下文章

Facebook iOS SDK - 打开会话并请求读取权限

ios facebook sdk 请求的超时值

Facebook-connect:无法使用PHP SDK + JS SDK注销

无法将 facebook-sdk 导入 Eclipse

无法导入桥接头 facebook sdk

无法导入 facebook-sdk 4.0.1