0

Я хочу добавить в систему Facebook приложение для своего приложения Alloy/Titanium ios.Проверить статус входа в Facebook с помощью сплава или титана в приложении iOS

До сих пор у меня есть следующий код:

var fb = require('facebook'); 
fb.initialize(); 
fb.setLoginBehavior(fb.LOGIN_BEHAVIOR_NATIVE); 
fb.permissions = ['email', 'public_profile']; 

function doFacebookLogin() { 
    // occurs when a button is clicked 
    if (fb.loggedIn) { 
     facebookLogin(fb); 
    } else { 
     fb.authorize(); 
    } 
} 

fb.addEventListener('login', function(event) { 
    if (event.success) { 
     facebookLogin(fb); 
    } 
}); 

function facebookLogin(fb) { 
    Ti.API.info(fb.accessToken); 
    // send the fb.accessToken server-side and register & login the user 
} 

Для большей части кода работает отлично!

Проблема заключается в том, что пользователь отменяет полномочия приложения, fb.login по-прежнему возвращает true, и поэтому использует тот же токен доступа.

Как проверить, отключено ли пользователем мое приложение. Я знаю, что это легко можно с помощью JavaScript SDK с помощью FB.getLoginStatus: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus, но я не могу найти эквивалент в сплав/Titanium: https://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook

ответ

0

Вам необходимо позвонить fb.logout() установить fb.loggedIn to false.

fb.logout очищает токен доступа и сбрасывает состояние входа в значение false.

Примечание: Я не уверен, что очистка токена доступа в модуле Titanium также очистит токен на сервере FB. Поэтому даже после вызова fb.logout() вы можете получить тот же токен доступа, если и только если он не истек на сервере fb.

Подробнее о Facebook Access Token here

+0

Это был оригинальный способ, которым я сделал вещи. Однако это помогает только в том случае, если пользователь отменил мое приложение. Если пользователь не отменил мое приложение, и я это сделаю, он дает мне сообщение о том, что «это приложение уже разрешено пользователем». Следовательно, мне нужно найти способ проверить статус входа пользователя. –

+0

Это обычная процедура для реализации FB. Все приложения Titanium используют те же потоки и даже собственные приложения. Я только что проверил игру Candy Crush на своем устройстве Android, и реализация Facebook точно такая же, как у Titanium. Кроме того, я не думаю, что вы можете делать то, что хотите, потому что это сообщение ** «это приложение уже разрешено пользователем» ** обрабатывается и отображается Facebook, а не SDK или модулем. –