新的Facebook API:使用getLoginStatus来检测用户是否已登录

时间:2011-05-27 01:18:00

标签: javascript facebook api

有没有办法,使用新的Facebook API,检测用户是否登录Facebook,与Facebook应用程序没有任何关系?这应该都是在网站页面上的客户端javascript中完成的。

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

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

此外,如果用户已登录,用户必须授予应用以使getLoginStatus正常工作的特定权限?我已经检查了这个权限列表(在Facebook API文档上):

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

并且没有提及任何与此类检测有关的许可。

这是我第一次使用Facebook API,这非常令人沮丧。我已经浏览了互联网,似乎普遍的共识是你根本无法检测用户是否登录或退出。

2 个答案:

答案 0 :(得分:0)

我发现当非Facebook用户访问该页面时,您可以从signedRequest检查[ age ]人员(根据我测试,此信息不需要许可)将同时具有最大 min 属性。

登录的Facebook用户只有 min 属性,因为这是他们的实际年龄。我相信这些信息是为了提供受年龄限制的内容。

登录的Facebook用户随后会提供与您的应用程序建立连接的访问​​权限,该用户将拥有一个用户ID,因此您也可以单独检测到这一点。

这通过从签名请求中获取信息来提供3个用户状态:

  • 匿名 :具有最高和最低年龄属性
  • Facebook用户 :只有最低年龄属性
  • Facebook用户(谁授予权限):拥有用户ID

请记住,facebook可以随时撤销此功能,而我实际上只是对此进行了一些测试。祝你好运。

答案 1 :(得分:0)

此页面提供了“非黑客,官方支持”的方式:

Possible to find out whether a user is logged into facebook over javascript API?