【问题标题】:Cant import Request, Session and response Facebook SDK 4.0. [Egregious Documentation]无法导入请求、会话和响应 Facebook SDK 4.0。 [令人震惊的文档]
【发布时间】: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 您不清楚问题的哪一部分?
  • 在最后一次编辑之前,问题“下一步是什么”的解决方案实际上是在问题中。但我猜你想发布一个没有分享对话框的图表故事?

标签: android facebook-opengraph facebook-android-sdk facebook-sdk-4.0 facebook-graph-api-v2.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); 

【讨论】:

  • 除了带有 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 提供此链接的时间。说了这么多,问题解决了。
猜你喜欢
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多