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

New Facebook API: using getLoginStatus to detect whether user is logged in

本文关键字:检测 用户 是否 登录 getLoginStatus Facebook API 使用 新的      更新时间:2023-09-26

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

更详细地说:根据脸书文档,如果"用户已登录并连接到您的应用程序",getLoginStatus将检测到用户已登录。另一方面,如果"该用户未登录脸书,或未授权您的应用软件",它将报告用户已注销。

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

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

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

并且没有看到任何与这种检测相关的许可。

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

我发现,当非facebook用户访问该页面时,你可以从signedRequest中检查人员[age](据我测试,该信息不需要权限),并且它将具有maxmin属性。

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

一个登录的脸书用户,然后授予访问权限来连接你的应用程序,将有一个用户id,这样你也可以单独检测。

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

  • 匿名 :具有最大和最小年龄属性
  • Facebook用户 :只有最小年龄属性
  • Facebook用户(授予权限的用户):有用户id

记住,脸书可以随时撤销这个功能,我真的只测试了一点。祝你好运