Не удается войти в Facebook из-за неверной ошибки токена доступа с помощью модуля Facebook Titanium

Я работаю с Titanium Studio 3.2.0 и Titanium SDK 3.2.0.GA и развертываю на устройствах Android с или без приложения Facebook. Чтобы войти в Facebook, я использую тот, который предоставляется Titanium .

У меня такая же проблема, описанная в этой ссылке . Когда я авторизуюсь в первый раз, событие входа в систему из Facebook запускается без каких-либо проблем. Но если я выйду из системы, а затем попытаюсь авторизовать еще раз (на данный момент разрешения моего приложения уже приняты, поэтому теоретически он должен запускать событие входа). Я получаю следующую ошибку в logcat:

E/FacebookModule( 1584): (main) [11631,11631] LoginDialogListener onFacebookError: Invalid access token. E/FacebookModule( 1584): com.facebook.android.FacebookError: Invalid access token. E/FacebookModule( 1584): at com.facebook.android.Facebook.onSessionCallback(Facebook.java:433) E/FacebookModule( 1584): at com.facebook.android.Facebook.access$000(Facebook.java:97) E/FacebookModule( 1584): at com.facebook.android.Facebook$2.call(Facebook.java:379) E/FacebookModule( 1584): at com.facebook.Session$3$1.run(Session.java:1239) E/FacebookModule( 1584): at android.os.Handler.handleCallback(Handler.java:605) E/FacebookModule( 1584): at android.os.Handler.dispatchMessage(Handler.java:92) E/FacebookModule( 1584): at android.os.Looper.loop(Looper.java:154) E/FacebookModule( 1584): at android.app.ActivityThread.main(ActivityThread.java:4624) E/FacebookModule( 1584): at java.lang.reflect.Method.invokeNative(Native Method) E/FacebookModule( 1584): at java.lang.reflect.Method.invoke(Method.java:511) E/FacebookModule( 1584): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) E/FacebookModule( 1584): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) E/FacebookModule( 1584): at dalvik.system.NativeStart.main(Native Method) E/FacebookModule( 1584): (main) [6,11637] onAuthFail: Invalid access token. 

Я даже попытался поймать эту ошибку с помощью try / catch, чтобы обработать ее, но даже если я разместил вызов авторизации внутри одного, код внутри catch не был выполнен. Нет ничего необычного в том, как я могу сделать авторизацию, насколько я знаю:

 $.LoginButtonHolder.addEventListener('singletap', function(e) { $.activityIndicator.show(); $.LoginButtonLabel.setOpacity(0); try { fb.authorize(); } catch(err) { // if the authorize call fails, show the error on the console and show the controls to try again // but these four lines of code never get executed, an unhandled exception is still thrown Ti.API.info('error in Facebook login'); Ti.API.info(err); $.activityIndicator.hide(); $.LoginButtonLabel.setOpacity(1); } }); 

После некоторого рытья я что-то понял, в первый раз, когда я пытаюсь авторизовать, я перенаправляюсь в приложение Facebook, и после принятия разрешений событие входа в систему запускается так, как должно (в качестве доказательства я получаю токен доступа), когда я выхожу из системы Токен доступа, который использовался для сеанса, был аннулирован (я проверил его в событии выхода из системы), а затем, если я попытаюсь снова авторизовать, кажется, что модуль Facebook не обращается к новому токену доступа, хотя мое приложение уже Разрешено, он пытается использовать аннулированный, поэтому бросает этот токен доступа недействительный, хотя это только предположение из моей части, и я не знаю, является ли это причиной .

Как я могу решить эту проблему? Решение, которое я использую на данный момент, заключается в том, чтобы удалить разрешения из моей учетной записи пользователя Facebook с помощью вызова Graph api, что неверно, но это единственный способ снова запустить событие входа в Facebook.

Также я проверил свои хэш-ключи, и они, похоже, в порядке, так как я не получил недействительного сообщения хеш-ключа, проблема здесь – токен доступа, вызов авторизации должен вернуть токен доступа с другим истечением, насколько я знаю, или сделал У меня есть неправильная идея?

Согласно этой ссылке для разработчиков Facebook существует четыре сценария, когда токен доступа истекает, но для сценария выхода из системы я получаю другое сообщение об ошибке, сообщение об ошибке показано на наличие ошибки, подтверждающей токен доступа: сеанс недействителен, поскольку пользователь вышел из системы , А тот, который я получаю, – LoginDialogListener onFacebookError: Недействительный токен доступа . Что вызывает сообщение об ошибке, которое я получаю?

Любая помощь будет оценена, спасибо заранее.

Я использую это, чтобы очистить любые остаточные пользовательские данные Facebook, когда пользователь выходит из системы, Не знаете, как Titanium использует SDK для Facebook, но так я это делаю с помощью FB SDK.

  Session.getActiveSession().closeAndClearTokenInformation(); 
Intereting Posts
Realm – как закрыть экземпляр realm с транзакцией async Дилемма: когда использовать Фрагменты против Действия: NotifyDataSetChanged () не работает с моим адаптером для gridview Android + Как добавить вертикальную функцию «Автопрокрутка» в ScrollView или TextView RecognitionListener callback to onError, вызываемый несколько раз с тем же кодом ошибки Формат пакета xml для Android не распознает свойства aapt Java Dates – Какой правильный класс использовать? Smart App Баннеры; Windows Store приложение HTML-метатег эквивалент для Android / Google Play? HTTPS заблокирован для Ionic build –release android apk Как перетащить элемент списка Listview в другой список Listview Размер карты IllegalStateException не должен быть 0 Динамически добавлять TableRow в TableLayout Как включить открытый ключ RSA в Google Play Services в моем бинарном приложении Android? Доступ к упорядоченным изображениям и видео в том же курсоре Уведомление от Google не исчезает после нажатия на значок