无法导入请求、会话和响应 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 - 打开会话并请求读取权限