【问题标题】:How to Page Through Facebook Graph API Friend List Results for More Than 19 Friends?如何通过 Facebook Graph API 好友列表结果分页超过 19 个好友?
【发布时间】:2014-07-07 16:14:59
【问题描述】:

我正在尝试使用 Graph API 浏览所有 Facebook 好友列表结果,以便获取用户(我,现在)的所有好友的计数。我正在使用 Graph API Explorer 进行测试,但也尝试使用基于 URL 的直接查询。

例如,我可以使用如下查询开始该过程:

https://graph.facebook.com/v2.0/me/friends?limit=5000&offset=0&access_token=MYTOKEN

这给了我 19 个结果和一个下一页链接。如果我单击/进入下一页链接,它会给出一个空数据数组(即使我有数百个朋友)。

当我与limitoffset 一起玩时,它们的行为通常不符合预期。一个可行的例子是,如果我问一个limit=10offset=10。如果我这样做,它将给我原始列表的后半部分。

但只要我将offset 增加到19 以上,我就会得到一个空数据数组。

好像我只有 19 个朋友。

如何通过 Graph API 获得超过 19 个朋友?

【问题讨论】:

  • 您知道,使用 API 2.0,您的应用只能看到也是该应用用户的朋友,对吧……?
  • 现在我只使用 Graph API Explorer。那么这个列表是什么,只有我的朋友也使用 Explorer 的 FB 用户?
  • 好吧,如果我切换到 1.0 并调整偏移量,我会得到更多结果。 1.0 会被 2.0 取代吗?
  • 当然。您是否没有阅读有关 API 2.0 引入的更改的文档……?
  • 好的,我现在看到了变化(FB app dev 今天对我来说是全新的)。所以如果没有每个朋友明确授予我这样做的权限,我就无法通过 Graph API 检索我自己的朋友列表?

标签: facebook facebook-graph-api


【解决方案1】:

实际上,context 字段似乎在这里工作。它的主要目的是向您显示当前用户和 另一个 用户有多少朋友 - 但是如果您查询它 for 当前用户 (/me),它似乎显示了当前用户所有朋友的数量。 (有道理,有点——我所有的朋友都和我自己“共同”……)

/2.0/me?fields=context

会给你一个如下格式的结构,

{
  "context": {
    "mutual_friends": {
      "data": [
        {
          "id": "…",
          "name": "…"
        },
        {
          "id": "…",
          "name": "…"
        },
        …
      ],
      "paging": {
        "cursors": {
          "before": "…",
          "after": "…"
        }
      },
      "summary": {
        "total_count": 1234
      }
    },

summary 下的total_count 似乎是您的好友总数。

【讨论】:

    【解决方案2】:

    将API版本改为1.0即可查询好友列表成功。

    /v1.0/me?fields=friends
    

    【讨论】:

    • 是的,但它已被弃用并消失。此外,不允许任何新的 Facebook 应用使用 API v1.0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多