【问题标题】:Getting app user data in graph api v2, using global IDs使用全局 ID 在图形 api v2 中获取应用用户数据
【发布时间】:2014-06-25 23:46:49
【问题描述】:

因此,Facebook 图形 API 的第 2 版引入了特定于应用的 ID,以保护用户隐私免受垃圾邮件或类似内容的影响。但他们表示,使用全局 ID 在 v1 中添加您的应用的用户将继续向您发送他们在 v2 中的全局 ID,以保持您的应用向后兼容。

这一切都很好,但是 api 的 v2 还禁止使用全局 ID 获取用户数据。从画布应用程序内部调用具有全局 ID 的图表会出现异常,说明要改用应用程序特定的 ID。

我有点不知所措。我正在尝试获取我的应用程序用户的随机子集的基本信息,以显示给当前用户,该用户不一定是朋友。但是我的大多数用户都在我的数据库中存储了全局 ID,因为他们很久以前就加入了。似乎如果我的应用是新的,那么存储在我的数据库中的所有 ID 都将是特定于应用的,因此我将能够获取他们的信息。这向我表明,Facebook 无意禁止我获取我想要的数据。这对我来说是不可能的,因为不幸的是拥有一个旧应用程序。

我有什么方法可以获取这些数据吗?我知道我可以恢复到图表的 v1,但这将在 2015 年 4 月 30 日消失。我只想要最基本的信息,并且只显示名称。

我使用的是 PHP SDK 版本 4。我的请求如下所示:

(new FacebookRequest(
            self::$session, 'GET', '',
            array('ids' => implode(',', $userIds))
        ))->execute()->getGraphObjectList(GraphUser::className());

我的会话来自于在FacebookCanvasLoginHelper 上调用getSession,如他们的文档中所示,因此我有一个新的访问令牌和签名请求。

编辑

所以,我撤销了我的问题,因为我很笨。萨希尔是对的。我的问题是我正在使用单独的应用程序进行测试(不是官方测试应用程序,而是我很久以前创建的用于测试的应用程序),所以有问题的应用程序 ID 并没有实际添加应用程序,所以我可以不知道他们的信息。哎呀。迁移到官方测试应用的充分理由。

再次编辑

我取消了我的问题。 Facebook是愚蠢的。我创建了一个与我的真实应用程序相关联的官方测试应用程序,它为我自己提供了一个特定于应用程序的 ID,而不是为主应用程序提供的 ID。我查看了我之前遇到问题的页面,同样的例外:

Facebook\FacebookAuthorizationException: The global ID 693041250 is not allowed.
Please use the application specific ID instead.

测试应用的开发页面说:

  • 测试应用与您的生产应用共享相同的应用范围用户 ID 命名空间,从而更轻松地调试应用范围 ID 的问题,或者在您使用生产数据库副本的情况下发展。

这显然是不正确的。我正在使用我的生产数据库的副本。我知道我的 Facebook ID。它甚至不会给出我自己为生产应用程序提供的 ID,更不用说其他人的了。这个新东西是否只适用于全新的应用程序或其他东西?我现在已经准备好放弃 Facebook 的开发了。

【问题讨论】:

  • 您执行的 API 调用是什么,您使用的是什么访问令牌?

标签: php facebook facebook-php-sdk facebook-graph-api-v2.0


【解决方案1】:

你说的很对-

使用全局 ID 在 v1 中添加您的应用的用户将继续向您发送他们在 v2 中的全局 ID,以保持您的应用向后兼容。

但这是不正确的:但是 api 的 v2 也禁止使用全局 ID 获取用户数据。从画布应用程序内部调用具有全局 ID 的图表会出现异常,说明要改用应用程序特定的 ID。

当然,您将获得带有 v2 API 返回的 id 的用户数据(无论是 global-id 还是 app-specific-id)。

抱歉,我不太了解您使用的 SDK 语法(我不喜欢使用 SDK),但我相信这会起作用。您甚至可以在Graph API Explorer 中进行测试,只需从(中上)下拉列表中选择您的应用,然后调用v1 用户的/v2/{user-id},这将为您提供结果。你的代码一定有问题。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多