如何从JavaScript SDK中的FB.login方法获取访问令牌

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

我需要从FB.loginJavascript SDK中的方法获取访问令牌。我的登录代码是

FB.login(function(response) {
    if (response.session) {
        if (response.perms) {

        } else {
            // user is logged in, but did not grant any permissions
            alert("No Permission..");
        }
    } else {
        // user is not logged in
        alert("Please login to facebook");
    }
}, {perms:'read_stream,publish_stream,offline_access'});

有没有办法获得访问令牌?我能够使用访问令牌PHP

提问于
用户回答回答于

您可以使用FB.getAuthResponse()['accessToken']以下方式获取访问令牌

FB.login(function(response) {
   if (response.authResponse) {
     var access_token =   FB.getAuthResponse()['accessToken'];
     console.log('Access Token = '+ access_token);
     FB.api('/me', function(response) {
     console.log('Good to see you, ' + response.name + '.');
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: ''});

更新为使用Oauth 2.0,自2011年12月起必需。现在使用FB.getAuthResponse(); 如果您使用的浏览器没有控制台,(我正在与您通话,请使用Internet Explorer)务必注释掉这些console.log行或使用日志-failsafe脚本,如:

if (typeof(console) == "undefined") { console = {}; } 
if (typeof(console.log) == "undefined") { console.log = function() { return 0; } }
用户回答回答于

response.session.access_token在我的代码中不起作用。但是这工作: response.authResponse.accessToken

     FB.login(function(response) { alert(response.authResponse.accessToken);
     }, {perms:'read_stream,publish_stream,offline_access'});

扫码关注云+社区