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

时间:2011-09-15 19:09:08

标签: facebook facebook-javascript-sdk oauth-2.0

我们正在使用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"
}

这与我们应该得到的signed request documentation相反。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

FB.getLoginStatus(function(response) {

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

                alert(response.authResponse.accessToken);

              }
        });

获得令牌后,您只需将其传递回后端即可查询图表。

答案 1 :(得分:1)

正确的是:

FB.getLoginStatus(function(response) {

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

            alert(response.session.access_token);

          }
    });