Итак, у меня есть некоторый код, где я получаю идентификатор пользователя, вошедшего в систему, через их API. Это выглядит так:
var facebookId = "";
facebookId = getFBIdSafe();
Вызов метода для получения выглядит следующим образом:
function getFBIdSafe()
{
FB.api('/me', function(response) {
if (!response || response.error) {
return "";
} else {
return response.id;
}
});
}
Что происходит, я вызываю этот метод, как я показал выше, а затем иду и делаю другие вещи, одной из которых является вызов AJAX на мой собственный сервер, передающий facebookId
, который был «установлен». Проблема в том, что она никогда не устанавливается.
Я бы предпочел не помещать вызовы FB.api
повсюду в моем коде, просто чтобы я мог поместить свой другой код в обратный вызов. Как я могу аккуратно позаботиться об этом и убедиться, что этот Id всегда возвращается, прежде чем я сделаю звонок на свой собственный сервер?
P.S. Он не выполняет этот код, если пользователь не вошел в Facebook в первую очередь - эта проверка происходит на основе маркера состояния на сайте - так что это не та же проблема.