繁体   English   中英

没有重定向到身份验证日志的新访问令牌

[英]New access token without redirect to auth log

修订的问题

我意识到使用以下响应: $facebook->api('/me?access_token='.$access_token)将确定您是否需要新的访问令牌。 因此,我的问题可以简化为:

如果用户尚未取消对应用程序的授权,是否有一种FB批准的方法来获取新的访问令牌,而无需重定向到身份验证日志


旧问题

正如这个问题所指出的,Facebook(离线)访问令牌由于各种原因而失效。 Facebook提供了此解决方案 ,用于重新授权和获取新的脱机访问令牌。

但是,该解决方案假定我想要以下行为:

  1. 将我的用户重定向到“身份验证”对话框
  2. 如果他们没有取消我的应用程序的授权,我会自动获得一个新的访问令牌
  3. 如果他们取消了我的应用程序的授权,他们将获得一个身份验证对话框以重新授权。

然而,

  • 如果用户尚未取消我的应用程序的授权,那么我想要一个新的访问令牌。
  • 如果用户 ,我不想一个auth对话框(也不是一个新的访问令牌)。
  • 理想情况下,这可以在PHP中完成,而无需重定向到身份验证对话框

如果您的应用获得了用户的授权,则可以使用以下javascript获取新的访问令牌:

    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            user_id = response.authResponse.userID;
            access_token = response.authResponse.accessToken;
        }
     }

这不会提示用户重定向到身份验证日志。 Facebook的getLoginStatus记录的简单内容。

除非用户登录Facebook,授权您的应用并访问您的页面,否则这当然是行不通的(出于我的目的,这种假设很好)。 但是,您可以请求offline_access权限并存储新的访问密钥,以供以后使用。

我的问题是,理想情况下,这将在服务器端处理。 不幸的是,这个PHP的行为:

$access_token = $facebook->getAccessToken();

与Javascript SDK生成的访问令牌响应不同。 看到这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM