Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0.

Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0. Даже когда я запускаю примеры, данные в facebook sdk, его аутентификация, а не перенаправление на следующий поток.it отображает предыдущую страницу.

Solutions Collecting From Web of "Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0."

По какой-то причине хеш, который генерирует keytool для меня, не совпадает с моим приложением. Это то, что сработало для меня. Создайте хэш, используя стандартный код, предоставленный facebook:

PackageInfo info = getPackageManager().getPackageInfo("<your_package_name>", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } 

Обязательно замените «your_package_name>» на соответствующее имя пакета. Посмотрите на logcat и возьмите keyhash и введите его в настройках вашего приложения facebook.

ACCESS_TOKEN_REMOVED не имеет ничего общего с проблемой. Это просто SDK для Facebook, не регистрирующий токен доступа. Таким образом, вы можете смело игнорировать эту часть ошибки.

Есть две вещи, которые являются вероятными причинами CLOSED_LOGIN_FAILED:

  1. Вы внесли неверные учетные данные в собственное приложение Facebook.

  2. Хэш хэша в Android введен в настройки вашего приложения на developers.facebook.com не соответствует ключевому хешу APK.

Чтобы устранить неполадки # 1 Откройте собственное приложение Facebook и убедитесь, что вы вошли в систему правильно и можете получить доступ к контенту. Если у вас неправильные учетные данные, введенные в родное приложение Facebook (возможно, вы недавно изменили свой пароль), тогда SDK для Facebook будет пытаться выполнить SSO с помощью собственного приложения и сообщить CLOSED_LOGIN_FAILED.

Чтобы устранить неполадки # 2 Просто следуйте инструкциям в разделе «Создание приложения Facebook» на этой странице, https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/ .

Примеры, предоставленные с помощью SDK для Facebook, не будут выполнены из-за того, что в конфигурации приложения для приложений-примеров не будет зарегистрирован хэш-код отладки. Существуют инструкции по устранению этого в разделе «Запуск образцов» в той же ссылке. Вот цитата:

Проще говоря, каждое приложение для Android, которое вы создадите, будет подписано, и вам нужно будет зарегистрировать хэш-код каждого приложения с Facebook в качестве проверки безопасности на подлинность – как мы увидим позже. Но чтобы обойти эту проверку для образцов SDK и быстро их запустить, вы можете добавить свой хэш в свой глобальный профиль разработчика Facebook.

У меня была аналогичная проблема – я получал CLOSED_LOGIN_FAILED с com.facebook.FacebookOperationCanceledException: User canceled operation и я определенно не отменял операцию.

После хороших 7-8 часов работы с каждой строкой кода приложения я заметил, что это было указано в моей деятельности в моем манифесте. Удаление его решило.

 android:launchMode="singleInstance" 

У меня была такая же ошибка, и я забыл следующую строку в onActivityResult активности стартера:

 Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 

Вот весь метод:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case RESULT_CODE_IMPORT_FACEBOOK: //do stuff break; default: Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); break; } } 

Если вы используете приложение Facebook в режиме песочницы, убедитесь, что учетная запись, которую вы используете, находится в списке авторизованных администраторов или разработчиков.

Попробуйте удалить приложение facebook с вашего устройства, а затем переустановить.

Другим обходным решением является подавление метода sso login. Это можно сделать следующим образом:

 LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton); authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO); 

Источник: Android – принудительное подключение к Facebook – переполнение стека

Я столкнулся с той же проблемой, но решение заключалось в том, что мне пришлось войти в facebook (developper.facebook) и в настройках моих приложений и добавить ключи, которые используются и добавляются имя пакета. Если это не поможет вам попытаться получить доступ к этой ссылке Для другого решения: « Android Facebook SDK 3.0 дает« remote_app_id не соответствует сохраненному идентификатору »при входе в систему "

Если вы не подписываете APP явно с определенным хранилищем ключей, IDE будет подписывать его для вас по умолчанию. Вы должны подписать свой проект с определенным хранилищем ключей, извлечь ключ-хэш и добавить его в свою учетную запись Facebook.

Как подписать свой проект

Как извлечь ключ-хэш

В моем случае, идентификатор приложения Facebook был неправильным, а также хэш ключей не был добавлен в приложение на facebook

Довольно странно, что он отлично работал на отлаживаемой не подписанной версии!

Мы столкнулись с одной и той же проблемой и долго искали. Я проверил ключ хэша, файл манифеста и многое другое, чтобы исправить эту проблему. Мы используем старую версию 3.23.1 для facebook sdk, и наше приложение не смогло подключиться к facebook, только для определенных телефонов. Он вернул состояние «CLOSED_LOGIN_FAILED», и через logcat он сообщил: «Не удается вызвать LoginActivity с нулевым вызывающим пакетом. Это может произойти, если startMode вызывающего является singleInstance».

На некоторых телефонах, как и у Fairphone, добавлена ​​новая функция: https://fairphone.zendesk.com/hc/en-us/articles/207164396-What-is-the-Privacy-Impact-feature-

Эта функция позволяет избежать надежной связи с Facebook в некоторых особых случаях. Как только вы отключите его, снова запустите приложение и примите разрешения, наше приложение ведет себя как ожидалось.

Надеюсь, это поможет избежать седых волос, которые я получил во время его фиксации.

Я также получил эту ошибку из SessionLoginSample в течение нескольких часов. Он работал после того, как я создал явное приложение SessionLoginSample на developer.facebook.com. Я скопировал идентификатор приложения в манифест Android и т. Д., И он сработал. Другими словами, конфигурация Sample App, описанная в руководстве по началу работы в Facebook, не удалась.