如何从Facebook签名请求中获取访问令牌?

Eri*_*ric 7 facebook oauth-2.0 facebook-javascript-sdk

我们使用Facebook Javascript SDK来验证我们的用户.

用户进行身份验证后,用户将获得包含已签名请求的fbsr_ <app_id> cookie.

然后我们使用AJAX将一些信息发布到我们的服务器.服务器接收带有签名请求的cookie,但是当服务器解析cookie中的签名请求(修改过的python SDK)时,它会将JSON对象解码为:

{
   "algorithm": "HMAC-SHA256",
   "code": "2.AQDBJ3-ZpURb9P4T.3600.1316037600.1-786359552|BNK6FGOAkvMs7slboQMSIEJYDWc",
   "issued_at": 1316031333,
   "user_id": "786359552"
}

这与我们应该获得的签名请求文档相反.

服务器需要访问令牌,因此可以使用GraphAPI获取一些其他信息.

我们如何从签名请求中获取访问令牌?

Dus*_*son 2

使用带有 javascript sdk 的新 oauth2 工作流程,用户令牌将可用。

进行身份验证后,您可以找到类似以下内容的令牌

FB.getLoginStatus(function(response) {

              if (response.status === 'connected') { 

                alert(response.authResponse.accessToken);

              }
        });
Run Code Online (Sandbox Code Playgroud)

获得令牌后,您可以将其传回后端来查询图表。