【问题标题】:Facebook app and session handlingFacebook 应用程序和会话处理
【发布时间】:2015-05-12 13:41:58
【问题描述】:

当用户从 Facebook 注销时,应用程序注销的方式是什么?

让我们考虑以下情况:我有内置到网上商店的应用程序,所以我需要知道用户的登录状态。当用户登录 facebook,然后登录我的应用程序时,他可以“保存”或“添加书签”页面。有一个选项 - 提供从应用程序注销然后从 facebook 注销的注销按钮。

但我的问题恰恰相反:如何检测用户是否已从 facebook 注销 - 在我的应用程序中,该应用程序内置于网上商店?没有办法从后端检测它,只有js。我可以以某种方式将 facebook 登录状态更改构建到我的 js 代码中,以便当我的 js sn-p 加载到网站上时它会立即进行检查?

【问题讨论】:

    标签: javascript php facebook session facebook-javascript-sdk


    【解决方案1】:

    您可以发出一个简单的图形 api 请求,例如

    https://graph.facebook.com/me/?access_token={your%20access%20token}
    

    如果用户已登录,那么您将收到包含用户信息的响应,否则您将收到如下响应

    {
       "error": {
          "message": "Error validating access token: This may be because the user logged out or may be due to a system error.",
          "type": "OAuthException",
          "code": 190,
          "error_subcode": 467
       }
    }
    

    使用这个你可以区分用户是否登录到fb。

    谢谢, 普拉纳夫

    【讨论】:

    • 这似乎不起作用,因为 AccessToken 没有被撤销。调试器显示仍然有效2个月:Expires 1437154288(约2个月)
    【解决方案2】:

    找不到任何合理的解决方案,所以做了以下:

    • 每个请求都指向应用程序
    • 在应用登录页面上,Facebook JS SDK 检查登录状态并处理一切

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2011-07-26
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多