2011-05-27 101 views
0

有没有一种方法,使用新的Facebook API来检测用户是否登录或不在Facebook上,与Facebook应用程序没有任何关系?这应该都是在一个网站上的一个页面上的客户端JavaScript中完成的。新的Facebook API:使用getLoginStatus来检测用户是否登录

详细信息: 根据facebook文档,如果“用户已登录并连接到您的应用程序”,getLoginStatus将检测到用户已登录。另一方面,如果“用户未登录Facebook或未授权您的应用程序”,则会报告用户已注销。

对我而言,这意味着getLoginStatus将永远不会在用户第一次使用您的应用程序时工作,因为任何用户第一次使用您的应用程序时,他/她没有授予您应用程序的任何权限。

此外,如果用户登录,用户必须授予应用程序getLoginStatus才能工作的具体权限?我已经检查权限名单(Facebook的API文档上):

http://developers.facebook.com/docs/authentication/permissions/

,并没有看到任何提及,涉及到这类检测的任何许可。

这是我第一次使用Facebook API,这是非常令人沮丧的。我搜遍了互联网,看起来普遍的共识是你根本无法检测用户是否登录或注销。

+0

你的意思是说,你需要检查用户的在线状态,而无需人的权限你的应用? – 2011-05-27 01:25:07

+0

是的。当你听起来像这样,听起来很可笑:)。因此,如果我们无法在未经许可的情况下检查用户的在线状态,我们需要哪种权限? – Sam 2011-05-27 16:23:01

+0

由于Facebook框是一个iframe,无法访问它的内容来了解​​这些信息。因为它们不具有相同的域 – Mbarry 2011-06-08 14:51:21

回答

0

我发现,当非Facebook的用户访问该页面,您可以检查从signedRequest的人[年龄(这个信息不需要许可,据我测试过),它会同时拥有max and min property。

已登录脸书用户将只有一个分钟财产,因为这是他们的实际年龄。我相信这些信息是为了提供受年龄限制限制的内容而提供的。

登录的Facebook用户然后授予访问权限与您的应用连接将有一个用户ID,因此您可以单独检测。

  • 匿名

    这从签名的请求采取信息给3个用户合众国最大和最小年龄性质

  • Facebook的用户:只有一个分年龄物业
  • Facebook用户(谁给了权限):有一个用户ID

请记住,Facebook可以随时撤销此功能,我真的只测试了一点。祝你好运。

相关问题