Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0. Даже когда я запускаю примеры, данные facebook sdk, их аутентификация, а не перенаправление на следующий flow.it, отображает предыдущую страницу.
Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0.
Ответ 1
По какой-то причине хеш, который генерирует 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.
Ответ 2
ACCESS_TOKEN_REMOVED не имеет ничего общего с проблемой. Это просто SDK для Facebook, не регистрирующий токен доступа. Таким образом, вы можете смело игнорировать эту часть ошибки.
Есть две вещи, которые являются вероятными причинами CLOSED_LOGIN_FAILED:
-
Вы внесли неправильные учетные данные в собственное приложение Facebook.
-
Хэш-код 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.
Ответ 3
У меня была такая же ошибка, и я забыл следующую строку в 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;
}
}
Ответ 4
У меня была аналогичная проблема - я получал CLOSED_LOGIN_FAILED
с com.facebook.FacebookOperationCanceledException: User canceled operation
, и я определенно не отменял операцию.
После хороших 7-8 часов работы с каждой строкой кода приложения я заметил, что это было указано в моей активности в моем манифесте. Удаление его решило.
android:launchMode="singleInstance"
Ответ 5
Если вы используете приложение Facebook в режиме песочницы, убедитесь, что учетная запись, которую вы используете, находится в списке авторизованных администраторов или разработчиков.
Ответ 6
Попробуйте удалить приложение facebook с вашего устройства, а затем переустановите.
Ответ 7
У меня возникла та же проблема, но решение заключалось в том, что мне приходилось вводить в facebook (developper.facebook) и в настройках моих приложений и добавлять ключи, которые при использовании и добавлении имени пакета Если это не поможет вам попытаться получить доступ к этой ссылке для другого решения: "Android Facebook SDK 3.0 дает "remote_app_id не соответствует сохраненному идентификатору" при входе в систему
Ответ 8
Другим обходным решением является подавление метода sso login. Это можно сделать следующим образом:
LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
Источник: Android - принудительное подключение к Facebook - переполнение стека
Ответ 9
Если вы не подписываете APP явно с определенным хранилищем ключей, IDE будет подписывать его для вас по умолчанию. Вы должны подписать свой проект с определенным хранилищем ключей, извлечь ключ-хэш и добавить его в свою учетную запись Facebook.
Ответ 10
в моем случае, идентификатор приложения Facebook был неправильным, а также хеш-ключ не был добавлен в приложение на facebook
достаточно странно, что он отлично работал на отлаживаемой не подписанной версии!
Ответ 11
Мы столкнулись с одной и той же проблемой и долго смотрели и гуглили. Я проверил ключ хэша, файл манифеста и многое другое, чтобы исправить эту проблему. Мы используем старую версию 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 в некоторых особых случаях. Как только вы отключаете его, снова запустите приложение и примите разрешения, наше приложение ведет себя как ожидалось.
Надеюсь, это поможет избежать седых волос, которые я получил во время его фиксации.
Ответ 12
Я также получил эту ошибку из SessionLoginSample в течение нескольких часов. Он работал после того, как я создал явное приложение SessionLoginSample на developer.facebook.com. Я скопировал идентификатор приложения в манифест Android и т.д., И он сработал. Другими словами, конфигурация Sample App, описанная в руководстве по началу работы в Facebook, не удалась.