【问题标题】:Facebook Graph API returns 'false' even though post is public即使帖子是公开的,Facebook Graph API 也会返回“false”
【发布时间】:2011-10-24 16:00:13
【问题描述】:

在我的应用程序中,大多数公开帖子在通过 Graph API 访问时似乎返回“false”。

示例:https://graph.facebook.com/1543370206_2215254431220?access_token=XXXX

该帖子是公开可见的,但查询上述内容总是返回 false。

根据 StackOverflow 上的类似问题,我尝试同时使用应用程序访问令牌和几个不同的 oAuth 2.0 用户访问令牌以及offline_access,但没有成功。

我也尝试过使用 profileid_postid ID 格式(如上)和 postid 格式(https://graph.facebook.com/2215254431220?access_token=XXXX)来访问它,但没有成功。

我也在 24 小时后重试,以确保我没有超出任何 API 限制。

我已经测试了 1,000 多个公开帖子(我知道它们是公开的,因为我使用搜索方法从 Graph API 获得了它们,但我还在浏览器中进行了一些随机抽样以确定)。 75% 返回 false(无论我使用的是应用程序访问令牌还是用户访问令牌)。

【问题讨论】:

标签: facebook facebook-graph-api


【解决方案1】:

我想我已经解决了。

返回 false 的帖子本身并不是“公开的”。他们似乎对任何 Facebook 用户都是可见的,无论他们是否是作者的朋友。但是,如果您没有登录 Facebook,则看不到它们。

成功的帖子是真正公开的。其中大部分属于公司等,无论您是否登录 Facebook,您都可以看到它们。

我猜 Graph API 区分了这两种类型的可见性,例如“Facebook 上的每个人”和“互联网上的每个人”。我查看了我的隐私设置,但无法弄清楚这是如何完成的。

无论如何,这在 Graph API 文档中没有详细记录。返回 '​​false' 也不是处理此错误的优雅方法。允许我通过搜索查看帖子但不直接查询对象也不一致。

【讨论】:

  • 你确定要如何处理这些帖子了吗?
  • 据我所知,这是不可能的。您仍然可以使用浏览器查看它们,所以我想您可以进行屏幕抓取,但这违反了 T&C。
【解决方案2】:

我知道这个问题已经超过一年了 - 但如果您使用页面访问令牌,Graph 将返回正确的对象。

您可以通过向用户请求MANAGE_PAGES 权限,然后获取用户的 /Account 连接来获取这些信息。连接中的每个条目都将包含一个 pageid 和一个特定于页面的访问令牌 - 此令牌将允许您从图中获取所有页面对象。如果您使用您的应用令牌或用户自己的令牌,它将返回false

【讨论】:

    【解决方案3】:

    您应该考虑向 Facebook 提交错误报告。为了增加这个问题,我注意到这些公共帖子只有在它们是用户对象的帖子时才会返回 false。页面对象的帖子按预期工作。您没有做错任何事情,因为这发生在 Facebook's Graph API Explorer(这是 Facebook 在其 API 文档中提供的用于查询公共帖子的示例)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多