Javascript 在函数外部获取Facebook访问令牌

Javascript 在函数外部获取Facebook访问令牌,javascript,facebook,facebook-graph-api,facebook-access-token,Javascript,Facebook,Facebook Graph Api,Facebook Access Token,因此,我使用这样一个函数来获取当前在我的网站上已通过身份验证的用户的访问令牌: var token; FB.getLoginStatus( function(response){ if (response.session) { alert(response.session.access_token); //This correctly shows the access token. <

因此,我使用这样一个函数来获取当前在我的网站上已通过身份验证的用户的访问令牌:

var token;
FB.getLoginStatus(
        function(response){
            if (response.session) { 
                alert(response.session.access_token);
                //This correctly shows the access token. <-----GOOD 
                token = response.session.access_token;
            } 
            else{
                //Other stuff.  
            }
        }
);
alert(token);
//This shows undefined.  <------PROBLEM
var令牌;
FB.getLoginStatus(
功能(响应){
if(response.session){
警报(response.session.access_令牌);

//这正确地显示了访问令牌。Ye问题在于getLoginStatus是一个连接到FB api的异步调用。但与此同时,脚本继续运行,因此在getLoginStatus()完成之前调用了警报(令牌);因此尚未设置令牌

我不知道您想对令牌执行什么操作,但我的方法是在加载令牌后立即调用getLoginStatus()中的函数,然后继续执行您想要的功能。因此

var token;
FB.getLoginStatus(
        function(response){
            if (response.session) { 
                alert(response.session.access_token);
                //This correctly shows the access token. <-----GOOD 
                token = response.session.access_token;
                continueScript();
            } 
            else{
                //Other stuff.  
            }
        }
);


function continueScript() {
      ....
      doSomeMoreFunctionalitiesWithToken();
      ....
}

function doSomeMoreFunctionalitiesWithToken() {
      alert(token);
}
var令牌;
FB.getLoginStatus(
功能(响应){
if(response.session){
警报(response.session.access_令牌);

//这正确地显示了访问令牌。Ye问题在于getLoginStatus是一个连接到FB api的异步调用。但与此同时,脚本继续运行,因此在getLoginStatus()完成之前调用了警报(令牌);因此尚未设置令牌

我不知道您想对令牌执行什么操作,但我的方法是在加载令牌后立即调用getLoginStatus()中的函数,然后继续执行您想要的功能。因此

var token;
FB.getLoginStatus(
        function(response){
            if (response.session) { 
                alert(response.session.access_token);
                //This correctly shows the access token. <-----GOOD 
                token = response.session.access_token;
                continueScript();
            } 
            else{
                //Other stuff.  
            }
        }
);


function continueScript() {
      ....
      doSomeMoreFunctionalitiesWithToken();
      ....
}

function doSomeMoreFunctionalitiesWithToken() {
      alert(token);
}
var令牌;
FB.getLoginStatus(
功能(响应){
if(response.session){
警报(response.session.access_令牌);

//这将正确显示访问令牌。尝试使用表达式
FB.\u session.access\u token
从任何其他位置获取访问令牌。

尝试使用表达式
FB.\u session.access\u token
从任何其他位置获取访问令牌。

尝试
window.token=response.session.access\u token;
…仍然no骰子作为变量的设置几乎是最后一件事。请尝试
window.token=response.session.access\u token;
…仍然没有骰子,因为变量的设置几乎是最后一件事。谢谢,这很有效。我最初只是使用对FB.getLoginStatus的调用,因为我不知道任何其他方法在FB文档中我找不到像你给我的那样的变量(糟糕的文档)…你在哪里找到这个?很高兴知道它有帮助。很多痛苦和痛苦,通过谷歌搜索找到了那个。谢谢,这是有效的。我只是最初使用了对FB.getLoginStatus的调用,因为我不知道有任何其他方式获得访问令牌。在FB文档中,我找不到像你给出的变量这样的变量我(糟糕的文档)…你在哪里找到这个?很高兴知道它有帮助。很多痛苦和痛苦,通过谷歌搜索找到了那个。