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 不会返回朋友的工作历史的主要内容,如果未能解决你的问题,请参考以下文章
Facebook不再返回all_mutual_friends了