Facebook 图形 API 不会返回朋友的工作历史

Posted

技术标签:

【中文标题】Facebook 图形 API 不会返回朋友的工作历史【英文标题】:Facebook graph API won't return friends work history 【发布时间】:2012-06-04 22:17:18 【问题描述】:

让我们排除明显的......

我的 Facebook 应用请求以下权限user_work_history, friends_work_history

...所以通常的嫌疑人(权限不足)不是我的问题的根源。

问题:

以下图形 api 调用完美运行:/me/friends?fields=name,work

我会得到姓名、身份证、工作经历等。正如你所期望的那样。

但是

当我将/me 替换为我的应用用户(已授权该应用)的用户 ID 时,我只能看到姓名和 ID(没有工作或教育领域)。

这是为什么?

【问题讨论】:

【参考方案1】:

原因是,您使用的访问令牌不是属于您要查看的用户的访问令牌。在 linter 工具 (https://developers.facebook.com/tools/lint) 中查看您的令牌并查看它属于谁。

当您获得该个人的用户访问令牌时,您可以使用它来获取他们的朋友。您不需要指定/userid/friends?fields=name,work(尽管您可以),只需指定/me/friends?fields=name,work,因为访问令牌属于该用户ID。

【讨论】:

有趣!这是有道理的,但我想确保我完全理解。我正在使用 php SDK 来调用 API。我是新手,但我认为您所说的意味着我需要为每个用户查询创建新的 $facebook 对象。对吗? 这真的没有必要。当用户登录时,PHP SDK 将自动使用属于该人的访问令牌。 好吧,我明白了。但请记住,我的应用程序需要从未登录用户的朋友那里检索工作历史信息。这些将是已经授权该应用程序的用户,但不是当前用户。如果我理解正确,我需要以某种方式代表他们生成一个单独的访问密钥。我在正确的轨道上吗? 您可以获得一个延长的访问令牌,有效期为 60 天,供每个用户在注销后获取信息。有关制作 60 天令牌的一些有用信息,请参阅 developers.facebook.com/roadmap/offline-access-removal。通过 PHP SDK 向 facebook 进行查询时,您可以将用户的扩展访问令牌添加到请求的查询字符串中,这样您就可以重用相同的 $facebook 对象。 我阅读了那个链接,它很有用。但是,我没有任何运气弄清楚如何使用 PHP sdk 请求新的更持久的访问令牌。我在他们的文档中找不到东西,所以也许我错过了。

以上是关于Facebook 图形 API 不会返回朋友的工作历史的主要内容,如果未能解决你的问题,请参考以下文章

使用图形 api 集成 facebook 聊天

Facebook不再返回all_mutual_friends了

Facebook Graph API 我/朋友啥都不返回

使用图形 api 在 facebook 上私下发帖到朋友墙上

Facebook Graph API:工作历史

Facebook 图形 API 仅返回某些网站的名称和 ID