繁体   English   中英

如何返回访问令牌facebook?

[英]How to return access token facebook?

我不知道如何在 api FB.login 中同步,这是我的代码:

function getAccesToken(){
    var access_token = "";
    FB.login(function(response) {
        if (response.authResponse) {
             access_token = FB.getAuthResponse()['accessToken'];

        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    }, { scope: '' });
    return access_token;
}

当我调用函数时

var access_token = getAccessToken();

但它返回空字符串。 我怎样才能修复它是同步的?

你不能让这个同步 - 如果可以的话,这将是非常糟糕的做法。 相反,调用包含访问令牌的FB.login回调处理程序中的函数。 尝试这个:

function getAccesToken() {
    FB.login(function(response) {
        if (response.authResponse) {
             loginComplete(FB.getAuthResponse()['accessToken']);
        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    }, { scope: '' });
}

function loginComplete(token) {
    console.log(token);
    // do something here, now the user is logged in...
}

FB.login需要在用户交互(鼠标点击)时调用,您必须使用FB.login的回调函数异步获取 Access Token - Access Token 将在响应值中。 例如:

document.getElementById('loginBtn').addEventListener('click', function() {
    FB.login(function(response) {
        if (response.authResponse) {
            doSomethingWithTheToken(response.authResponse.accessToken);
        }
    }, {scope: 'email,public_profile', return_scopes: true});
}, false);

function doSomethingWithTheToken(token) {
    console.log(token);
}

来源(以及更多关于 JavaScript SDK 的信息): http : //www.devils-heaven.com/facebook-javascript-sdk-login/

暂无
暂无

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

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