【问题标题】:Facebook user id on iframe page tab without permissions没有权限的 iframe 页面选项卡上的 Facebook 用户 ID
【发布时间】:2012-02-07 16:35:49
【问题描述】:

我有相当多的 Facebook 开发经验,但这让我抓狂。它一定是很小的东西,但我无法得到它。我最近看到一些带有欢迎标签的 Facebook 页面,显示访问他们页面的用户名“欢迎 [您的名字]”。示例在这里:

https://www.facebook.com/Tony.Samaha.Official.Page

据我所知,没有用户的权限,我们无法获取用户 ID。获得权限后,我们可以在签名请求中获取用户 ID。如何获取 Facebook 用户 ID 或名称,类似于上面的示例?这是如何工作的?这可以实现吗?

仅供参考:我正在使用 iframe 选项卡。

【问题讨论】:

    标签: php facebook api facebook-iframe iframe-app


    【解决方案1】:

    查看signed_requests 上的文档。当用户访问您的应用程序时,将有一个signed_request 发布到您的 URL。文档指出:

    • 签名请求被传递给 Facebook.com 上的应用程序,当它们 加载到 Facebook 环境中
    • signed_request 被传递给任何 在开发者应用中注册了取消授权回调的应用 每当给定用户使用应用仪表板删除应用时
    • signed_request 被传递给使用注册插件的应用程序 每当用户成功注册其应用时

    您必须解码此请求(有关详细信息,请参阅上面的链接),然后您将能够从那里提取访问用户的 user_id。然后您所要做的就是像这样查询Graph API
    https://graph.facebook.com/USER_ID,您将获得该用户的公开信息,应该包括用户名。

    【讨论】:

    • 你是对的,但需要权限才能获得签名请求的“用户 ID”部分
    • 如果您正在谈论一个页面标签应用程序 - 用户需要做的就是“喜欢”该页面,您将可以访问他的用户 ID
    • 您收到签名的请求了吗?你能解析它吗?
    • 是的,当然,我是粉丝页面的管理员,我可以解析signed_request。这是我的签名请求:### SIGNED REQUEST ### Array ( [algorithm] => HMAC-SHA256 [issued_at] => 1330112620 [page] => Array ( [id] => 304887859549216 [liked] => 1 [admin] => 1 ) [user] => Array ( [country] => us [locale] => en_US [age] => Array ( [min] => 21 ) ) )
    • 测试应用:goo.gl/1bNco 按页脚中的“©”符号为管理员提供调试信息。
    【解决方案2】:

    用户仍在使用旧的静态FBML 应用程序,因此他们很可能正在使用fb:name 标记。不过,我相信现在已弃用。真的,您链接到的页面需要更新。

    【讨论】:

    • 嗯,我认为你是对的。 "fb:name" 仍然可以使用一段时间。那么没有权限就没有办法获取用户id吗?
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多