Я использую PhoneGap/Cordova с плагином facebook. Кажется, все работает, за исключением getLoginStatus, который не работает, как определено здесь и здесь. При вызове он возвращает некоторые данные, но не все: он не возвращает ни userID, ни signedRequest. Вот код:
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
var fb_uid = response.authResponse.userID;
var fb_signedRequest = response.authResponse.signedRequest;
alert('logged in');
} else {
alert('not logged in');
}
});
userID заполнен многоточием (...), а signedRequest не определен.
Мне удалось получить идентификатор пользователя с помощью графического вызова /me:
FB.api('/me', function(me){
if (me.id) {
var fb_uid = me.id;
}
});
Мне не удалось найти в документации способ получить signed_request, который я должен использовать для аутентификации пользователя facebook в удаленной службе, к которой пользователь уже подключен с помощью facebook (я уже сделал вызов для входа в систему, поэтому пользователь OK). В основном проблема в том, что мой вызов getLoginStatus возвращает
{
status: 'connected',
authResponse: {
session_key: true,
accessToken: 'a long string...',
expiresIn:'a number',
sig: '...', //exactly this string
userID:'...' //exactly this string
secret:'...' //exactly this string
expirationTime:'a long number'
}
}
вместо того, что задокументировано