Facebook在页面选项卡上获取用户ID(signed_request)

时间:2010-07-29 11:35:56

标签: facebook

我遇到了一个问题。

我有自定义页面标签,并在其上查看当前用户。 我要求用户为他的个人资料授予扩展权限(使用Facebook.showPermissionDialog)。 如果他授予权限,理论上,我可以访问Graph API和其他东西。 但是当我从Facebook解析新的signed_request param时,我得到oauth_token,绑定到当前页面选项卡,而不是用户配置文件。换句话说,请求Graph API方法'我'给我自定义页面配置文件。我想得到用户的个人资料!我应该如何访问它?

如何在Facebook标签页上访问用户的Graph API?

2 个答案:

答案 0 :(得分:3)

我已经弄清楚它是如何工作的。在用户授予权限后,当通过Ajax在我的服务器上调用页面时,Facebook会发送当前用户的signed_request(以及他的ID)。当页面静态加载时 - 您将获得页面选项卡的signed_request。希望它会对某人有所帮助。

答案 1 :(得分:2)

Tab比常规应用程序更受限制。除非他们与标签交互,否则它不知道谁正在访问它。基本上,它是为了强调选项卡被设计为对安装它的用户有用,而不是对访问者有用。来自docs

  
      
  • 当用户第一次访问选项卡时,它不知道查看用户是谁。 Facebook发送fb_sig_user和fb_sig_profile_user参数,两者都包含配置文件所有者的用户ID。
  •   
  • 如果查看用户与选项卡交互(如提交表单,执行导致AJAX加载新内容的操作,或遵循在选项卡上加载的相对URL),则该用户的UID将作为提交方发送给应用程序在fb_sig_user参数中,配置文件所有者的用户ID作为fb_sig_profile_user参数发送。仅当用户授权应用程序时,才会发送查看用户的会话密钥密钥。
  •   
  • 应用程序在所有者的应用程序选项卡上使用所有者的会话密钥。
  •