【问题标题】:Access Token of Facebook changed by user, How to get call back for Access Token?Facebook的Access Token被用户更改,如何获取Access Token的回调?
【发布时间】:2015-06-16 08:51:19
【问题描述】:

我正在使用 Facebook SDK 4.2。我已经实现了 AccessTokenTracker 接口,如果令牌被更改,它就可以工作。

我的问题是:如果用户获得了从 Android 应用发布内容的 publish_permission。然后我从我的 Facebook 帐户中删除该权限。现在在应用程序中,令牌从

返回
AccessToken accessToken = AccessToken.getCurrentAccessToken();

此令牌具有 publish_permission,但在 Facebook 服务器上的权限已更改。 从 Facebook 帐户中删除该应用程序的权限后。我再次运行我的应用程序。然后我按下分享按钮,然后我得到了错误

{FacebookGraphResponseException: (#200) 需要扩展权限:publish_actions httpResponseCode: 403, facebookErrorCode: 200, facebookErrorType: OAuthException, 消息: (#200) 需要扩展权限: publish_actions}

那么我如何检查这个令牌是否与 Facebook 服务器令牌匹配。

【问题讨论】:

    标签: android facebook facebook-access-token android-facebook


    【解决方案1】:

    我不认为你可以主动“匹配”服务器访问令牌,但你可以使用

    GET /debug_token?input_token={input-token}&access_token={access-token}
    

    调用检查当前存储的访问令牌是否包含特定权限,其中

    • input_token:要获取相关信息的访问令牌
    • access_token:您的应用访问令牌或来自应用开发者的有效用户访问令牌

    生成的 JSON 将包含一个包含实际权限的 data.scopes 数组。

    或者,我认为更适合您的用例,您也可以使用

    GET /me/permissions?access_token={access_token}
    

    在触发分享前,检查publish_actions权限是否还在。此外,当用户卸载您的应用程序时,会触发 Deauthorize Callback 机制:

    人们可以通过 Facebook.com 卸载应用程序,而无需与应用程序本身进行交互。为了帮助应用检测何时发生这种情况,我们允许它们提供取消授权回调 URL,只要发生这种情况就会被 ping。

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 2012-08-23
      • 2013-09-13
      • 2014-07-16
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多