Вы выполняете асинхронный запрос, который может быть не завершен к моменту выполнения вашего оповещения.Чтобы устранить проблему, просто вызовите функцию после завершения асинхронного метода:
var token;
window.fbAsyncInit = function() {
FB.init({ appId: 'XXXXXXXX',status: true,cookie: true,xfbml: true,oauth: true});
FB.getLoginStatus(function(response) {
if (response.authResponse){
if(response.status=="connected") {
token = response.authResponse.accessToken;
asyncComplete();
}
}
});
};
function asyncComplete() {
alert(token);
}
Или просто передайте значение вместо использования переменной token
:
window.fbAsyncInit = function() {
FB.init({ appId: 'XXXXXXXX',status: true,cookie: true,xfbml: true,oauth: true});
FB.getLoginStatus(function(response) {
if (response.authResponse){
if(response.status=="connected") {
asyncComplete(response.authResponse.accessToken);
}
}
});
};
function asyncComplete(token) {
alert(token);
}