获取函数的Facebook的访问令牌OUTSIDE

所以我使用的函数等来获取目前在我的网站已经验证用户的访问令牌:

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

要知道这似乎访问令牌的唯一方法是被称为呼叫FB.getLoginStatus内的匿名函数内。

我已经确定,问题是,FB.getLoginStatus里面的匿名函数直到页面上的所有其他脚本结束时执行。 因此,变“令牌”不会,直到一切都执行完毕,使之无用设置。

有没有那么一个方法来提取访问令牌到一个普遍可访问的变量? 我不希望有写我的代码需要在一个匿名函数访问令牌的知识。

--------------解决方案-------------

尝试使用表达式FB._session.access_token从任何其它位置获得访问令牌。

叶的问题是,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);
}

例如,你可以只在屏幕上显示“正在加载...”的指标,只有将其删除,并显示getLoginStatus()完成了它的任务和令牌已定后,因此之后的实际内容。

希望这可以帮助你。

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.558 (s). 10 q(s)