Вы объявили эти переменные вне области их использования. Чтобы исправить ваш код, объявите их вне функции:
var uid1 = "";
var accessToken2 = "";
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
uid1 = response.authResponse.userID;
alert(uid1);
accessToken2 = response.authResponse.accessToken;
alert(accessToken2);
} else if (response.status === 'not_authorized') {
} else {
}
alert(uid1); // Values will be set here.
alert(accessToken2);
});
alert(uid1); // Values won't reliably be set here.
alert(accessToken2);
Обновление: Как следует из приведенных ниже комментариев, поскольку ваш метод getLoginStatus
является асинхронным, вы, скорее всего, не получите значений при вызове alert()
вне метода. Я добавил дополнительные предупреждения в обратный вызов, чтобы показать, где вы должны попытаться получить доступ к значениям.