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

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

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

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

问题:

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

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

但是

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

这是为什么?

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案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 请求新的更持久的访问令牌。我在他们的文档中找不到东西,所以也许我错过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多