Хэш ключа Facebook не совпадает ни с одним из сохраненных хэшей ключей

У меня действительно проблемы с хэш-ключом Facebook. Я сгенерировал его в своем Eclipse.. доказательство:

Затем я перешел на страницу https://developers.facebook.com/ и зарегистрировал новое приложение.

И, наконец, я установил свой хеш-ключ в настройках разработчиков Facebook:

Но что бы я ни делал, я продолжаю получать один и тот же журнал ошибок: «Хэш ключа B5dWUEYfZJL/.........jyA= не соответствует ни одному из сохраненных хэшей ключей»

Кто-нибудь знает, что я сделал не так или как я могу решить эту проблему? Если бы я использовал идентификатор и имя из HelloFacebookSample внутри своего собственного приложения, все работало бы. Так что это ДОЛЖНО быть связано с хэшем ключа, идентификатором или именем, которое я где-то установил, скорее всего.

Спасибо, Йенте.


person Yenthe    schedule 30.11.2013    source источник
comment
Шапка экрана, где вы показываете настройки хэша ключа, находится не в том месте. Параметры примера приложения предназначены только для хэшей ключей для примеров приложений, которые поставляются с SDK (чтобы вы могли создавать их локально). Вы должны поместить ключевые хэши на вкладке Android в настройках вашего приложения.   -  person Ming Li    schedule 30.11.2013
comment
Да, я знаю, что вы имеете в виду, и это была моя первоначальная ошибка. Затем я переместил его на вкладку Android, но ни то, ни другое не увенчалось успехом. Мне пришлось вручную удалить свой хеш-ключ и сгенерировать новый, прежде чем все заработало.   -  person Yenthe    schedule 01.12.2013
comment
удалите свое приложение с сайта developer.facebook.com и попробуйте этот stackoverflow.com/questions/4388992/   -  person Manmohan Pal    schedule 26.02.2017
comment
Сгенерируйте SHA1 в студии Android и преобразуйте его в хэш отсюда: fbkeyhash.com/index.php   -  person Sumit Shukla    schedule 08.07.2021


Ответы (30)


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

1) Запустите приложение и попробуйте войти через facebook. Откроется диалоговое окно и сообщит вам: «Ключ не найден в консоли разработчика facebook, а также покажет хеш-ключ.

2) Запишите этот хэш-ключ.

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

person Narender Gusain    schedule 30.07.2015
comment
Спасибо. Работал как шарм. - person Rajan Maurya; 15.06.2016
comment
Нет, у меня не сработало. Он по-прежнему отлично работает без приложения facebook, но если приложение fb установлено, оно выдает ту же ошибку. - person Ahsan; 17.10.2017
comment
Большое спасибо, приятель! - person Ahsan; 18.10.2017
comment
Хэш ключа выпуска не работает для меня, но хэш ключа отладки работал нормально - person Konstantin Konopko; 14.04.2018
comment
Не могли бы вы рассказать мне о концепции кейхэшей, что это такое на самом деле и по каким критериям они генерируются? - person B.shruti; 01.06.2018
comment
следует ли удалить все предыдущие использованные хеш-ключи? - person Manny265; 03.08.2018
comment
Данное решение работает нормально, для меня, когда я загружаю приложение из игрового магазина и пытаюсь войти в систему, оно дает мне другой хэш, чем сгенерированный из хранилища ключей выпуска. - person nilesh; 03.09.2018
comment
будьте осторожны с заглавными буквами - person Juan Angel; 08.03.2019
comment
Просто позор на Facebook из-за ПЛОХОГО документа - person Ali Zarei; 24.06.2020

После нескольких часов попыток я наконец нашел решение.

  1. Удалить любое приложение на сайте Facebook (developers.facebook.com)
  2. Удалите файл debug.keystore под C:\Users\yourUserName\.android
  3. Создайте новый ключ (запустив приложение еще раз)
  4. Создайте новое приложение на сайте developer.facebook.com и добавьте новый хеш-ключ.
  5. Повторно запустите ваше приложение
  6. Успех!
person Yenthe    schedule 30.11.2013
comment
Спасибо! Это действительно работает, но что, если у меня есть несколько приложений, зарегистрированных на сайте разработчиков Facebook, и эта проблема время от времени возникает снова и снова? - person Yulian; 08.01.2015
comment
@Yulian Я не уверен, это звучит как очень неприятная проблема .. Я не уверен в этом, так как у меня есть только одно приложение на сайте разработчиков. Прости! - person Yenthe; 08.01.2015
comment
Приятно слышать, что мое решение все еще работает @FernandoP.G.! Я тоже поражен, что эта ошибка все еще здесь спустя более года. - person Yenthe; 18.02.2015
comment
Теперь, что нам делать, если у нас уже есть тысячи пользователей, просто воссоздать приложение — не совсем хорошая идея. - person Hobbyist; 13.05.2015
comment
Мой обзор получил успех. Если я создам новое приложение, я снова хочу отправить его на проверку. Является ли создание нового приложения обязательным? - person Naveen Kumar M; 27.08.2016
comment
Спас мой день. Была такая же проблема. Простое изменение текущего приложения FB на новое решило все. Спасибо - person Rahul; 28.10.2016
comment
У меня очень похожая на вашу ситуация. Я не стал удалять все, а создал новую лицензию, зашел на свою обычную страницу в ФБ - Настройки - Приложения - Удалил приложение из списка. Изменен хэш-ключ в учетной записи разработчика и переустановлено приложение fb и собственное приложение. И теперь это работает... Кажется, fb запоминает хеш-ключи. - person anna_manzhula; 07.06.2017
comment
Удаление приложений не вариант. Это решило проблему github.com/AntonioCuevaUrraco/nativescript -facebook-логин/ - person Mustafa Magdy; 17.04.2018
comment
Повторная генерация debug.keystore может усложнить ситуацию, так как если вы используете firebase с Google Sign-In, он больше не будет работать, так как будет сгенерирован новый ключ SHA-1, и вам придется обновить его на странице приложения firebase. - person Kewal Shah; 08.06.2018
comment
Как насчет приложений, которые уже есть в магазине и пользователи которых уже используют Facebook? Вы не можете просто удалить приложение. - person skydev; 31.10.2018
comment
У меня та же ошибка, но когда я не установил пароль в поле «Введите пароль хранилища ключей»: (оставьте его пустым и просто нажмите «Ввод»), тогда он работает. Это дает некоторое предупреждение, но это работает - person Erfan Jazeb Nikoo; 02.12.2018
comment
У меня есть разрешения для приложения, и если я его удалю, восстановить порядок будет долго. - person Tushar Gogna; 18.03.2019

ДАТА ОБНОВЛЯЕТСЯ КАЖДЫЙ РАЗ, КОГДА Я ПОЛУЧАЮ UPVOTE, ТАК КАК Я ЗНАЮ, ЧТО ЭТО ДЕЙСТВИТЕЛЬНО

ДАТА: 24 июля 2021 г. (24 июля 2021 г.)

Вот как я решил эту проблему

  1. Я получил SHA1 от signingReport

(найдено в gradle --›tasks/android/signingReport)

Скопируйте значение SHA1 в буфер обмена.

вот так XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

  1. Facebook sdk требует, чтобы он был в хеш-ключе base64, поэтому мы открываем http://tomeko.net/online_tools/hex_to_base64.php

чтобы преобразовать значение SHA1 в base64.

Это то, что требует Facebook, чтобы получить сгенерированный хэш **********************=

  1. открыть https://developers.facebook.com/

  2. выберите свой проект на вкладке настроек, основные/ключевые хэши добавьте сгенерированный ключ.

  3. не забудьте сохранить изменения.

person Moustafa EL-Saghier    schedule 14.12.2019

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

1- команда facebook для получения хеш-ключа с помощью команды openSSL не дала мне правильный хэш, который я получил, извлекая подпись из информации о пакете с кодом. получение хеша вторым способом было правильным.

2- По какой-то причине в документации они говорят вам перейти в настройки разработчика и добавить туда хеш-ключ для «Образца приложения», я думал, что каждый хеш-ключ для разработчика должен быть там, и это была моя ошибка, у каждого приложения есть свой собственное поле хэш-ключей для добавления, перейдите в ваше приложение/настройки/android.

введите здесь описание изображения

ну вот и все.. и для записей я использовал openssl-0.9.8k_X64 на 64-разрядной Windows 7, и он просто генерирует неправильный хеш, я не знаю, почему

Я использовал этот код для получения хэша:

private void printKeyHash() {
    // Add code to print out the key hash
    try {
        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));
        }
    } catch (NameNotFoundException e) {
        Log.e("KeyHash:", e.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", e.toString());
    }
}

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

в любом случае вы также можете использовать команду или eclipse для просмотра шестнадцатеричной последовательности SHA для вашего ключа и преобразования ее в базу 64 онлайн, есть веб-сайты, которые могут помочь http://tomeko.net/online_tools/hex_to_base64.php?lang=en

Удачи

person Bashar Ali Labadi    schedule 04.12.2014
comment
этот сделал это для меня! Спасибо, приятель! я добавил этот код в свою функцию oncreate для моей основной деятельности и проверил результат в моей консоли logcat, отфильтровал KeyHash и вставил этот ключ в панель инструментов моего приложения, он работал отлично! - person Fo Nko; 28.05.2018
comment
я отправил свое приложение другу, и у него такая же проблема... оно работает для меня, но он не может войти! это почему? - person Fo Nko; 28.05.2018

Я столкнулся с похожей проблемой. Решение на удивление простое.

Сообщение об ошибке выглядит так:

07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ......     at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:191)

Просто войдите на сайт https://developers.facebook.com , выберите вкладку "Настройки" и добавьте хэш ключа. "sL1***************VY=" в список сохраненных хэшей ключей в панели Android.

person Darsen Lu    schedule 05.07.2016
comment
Это лучший ответ. - person abelabbesnabi; 15.03.2017
comment
Это идеальный ответ - person Sushin Pv; 25.01.2018
comment
и, когда вас попросят ввести пароль ключа отладки, который вы никогда не устанавливали, введите android и поблагодарите меня позже :) - person touhid udoy; 10.12.2018
comment
исключение больше не возвращает хэш ключа - person Tamim Attafi; 24.02.2019
comment
даже это не сработало для меня, я удалил приложение facebook, и оно сработало, как указано в другом ответе. - person jayasurya_j; 05.03.2019

Это случай, который мог произойти и решить мою ошибку:

В https://developers.facebook.com/quickstarts после запуска

OSX/Linux:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

При появлении запроса Enter keystore password: возможно, вы случайно ввели неверный пароль, пароль по умолчанию — "android. ". Ввод любого другого пароля даст вам другой/неправильный хеш-ключ. Вставьте правильный хеш-ключ в поле Key Hashes на странице приложения.

Это решило мою проблему, надеюсь, это поможет тому, кто сделал эту конкретную ошибку, которую я сделал.

person Kewal Shah    schedule 08.06.2018
comment
Можно ли изменить пароль по умолчанию? если да то как\где? - person Coder123; 02.01.2019
comment
@Coder123 просто создайте свой собственный debugAlt.jks в другом каталоге с другим паролем и ключом и поместите его в свой signingConfigs { debug { storeFile file(new File('../debugKey.jks')) storePassword "Qwerty123" keyAlias "debug" keyPassword "Qwerty123" } } - person Variag; 11.01.2019
comment
Вы имеете в виду, что мы должны обязательно использовать Android в качестве пароля? где это написано? - person user1090751; 23.01.2020
comment
@user1090751 user1090751 нажмите на ссылку Android в моем ответе, чтобы узнать больше. Вы можете создать свой собственный пароль, как указано в предыдущем комментарии. - person Kewal Shah; 24.01.2020
comment
Спасибо за этот пароль! Это решило это для меня! - person ljubiccica; 20.03.2020

---2019----- Вот как я решил эту проблему

  1. в студии Android на правой панели Gradle>App>android>signingReport скопируйте SHA1
  2. и откройте http://tomeko.net/online_tools/hex_to_base64.php, чтобы преобразовать значение SHA1 в база64.

Это то, что требует Facebook, чтобы получить сгенерированный хэш **********************= и скопировать хэш ключа в приложение facebook.

person Govan    schedule 07.08.2019
comment
Спасибо, это решило мою проблему. Почему версия keytool не работает интересно - person Nijat Aliyev; 30.11.2020

Добавление ключей SHA1 из Eclipse/keytool помогло мне только при создании приложения на FB, после чего после пересборки я всегда получал ошибку OP.

Что решило мою проблему, так это добавление ключа в сообщении об ошибке в настройки панели инструментов Facebook.

person vvbYWf0ugJOGNA3ACVxp    schedule 23.07.2014
comment
Для ключа отладки хорошо, но как я могу узнать о сообщении об ошибке из приложения, установленного через apk? - person kostyabakay; 19.08.2016

Выполните следующие шаги, чтобы сгенерировать правильные хэши ключей.

  1. Откройте свой проект в студии Android и запустите проект.
  2. Нажмите на меню Gradle.
  3. Выберите свое приложение и разверните дерево задач.
  4. Дважды щелкните Android -> signingReport и увидите волшебство Образец изображения
  5. Результат после нажатия на вкладку выше Результат после нажатия на вкладку выше
  6. Скопируйте ключ SHA1 и найдите ключ SHA1 для хэша ключа.
  7. После преобразования ключа SHA1 в хэш ключа скопируйте новый хэш ключа и вставьте его в консоль facebook. Это будет работать как шарм.
person Pratap Sharma    schedule 10.10.2019
comment
Хорошее простое решение, просто убедитесь, что вы скопировали sha1 из правильного варианта, в моем случае это был выпуск. - person Francis Malloch; 12.04.2020

При создании хэш-ключа выпуска обратите внимание на это

Для Windows

При создании хэш-ключа для производства вам необходимо использовать openssl-0.9.8e_X64.zip в Windows, вы не можете использовать openssl-0.9.8k_X64.zip

Версии выдают разные хэш-ключи, почему-то 9.8k работает некорректно... 9.8e работает.

OR

Используйте этот ниже поток

Вот как я решил эту проблему. Загрузите APK на свой компьютер в папку java jdk\bin, в моем случае C:\Program Files\Java\jdk1.7.0_121\bin перейдите в папку java jdk\bin и запустите cmd, затем скопируйте следующее команда в вашем cmd

keytool -list -printcert -jarfile yourapkname.apk

Скопируйте значение SHA1 в буфер обмена следующим образом: CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84 и откройте http://tomeko.net/online_tools/hex_to_base64.php, чтобы преобразовать значение SHA1 в база64.

Для MAC

Шаг 1:

Сгенерируйте ключ SHA1 с помощью приведенной ниже команды
keytool -list -v -keystore Путь к хранилищу ключей
Введите пароль хранилища ключей.
Скопируйте ключ SHA1.

Шаг 2:
Откройте эту ссылку - http://tomeko.net/online_tools/hex_to_base64.php
Вставьте ключ SHA1 в шестнадцатеричную строку
Нажмите кнопку преобразования
Получите хеш-ключ релиза в выходном значении

person Thamim    schedule 13.08.2019
comment
это решило мою проблему keytool -list -printcert -jarfile yourapkname.apk :) - person Hawk; 04.06.2020

  1. Проверьте хеш-значение ключа.
  2. Удалите приложение Facebook с телефона.
  3. Затем повторите попытку с помощью SDK.

Это решило мою проблему.

person Rezaul Karim    schedule 29.12.2015
comment
Удаление приложения FB решило проблему!! Спасибо :) - person nithinreddy; 17.06.2018
comment
@Rezaul Karim, это работает, но что, если я хочу, чтобы это работало без установки приложения fb? - person divaPrajapati09; 11.02.2019

У меня эта проблема уже два месяца. Мои ключевые хэши накапливались до 9. Сегодня я наконец нашел простое решение:

ШАГ 1:

Установите facebook sdk, который вы скачали со страницы разработчика facebook, на свой телефон. Не устанавливайте обычное приложение facebook. Убедитесь, что вы можете войти в Facebook. Затем выйдите из системы.

ШАГ 2:

Экспортируйте свое приложение с окончательным ключом выпуска в виде apk, как если бы вы загружали его в магазин игр.

ШАГ 3:

Поместите файл Apk на свой телефон через USB-кабель или USB-накопитель.

ШАГ 4:

Установите приложение с помощью файлового менеджера: например, https://play.google.com/store/apps/details?id=com.rhmsoft.fm

ШАГ 5:

Запустите приложение и попробуйте войти через facebook. Откроется диалоговое окно с сообщением: «Ключ не найден в консоли разработчика facebook.

ШАГ 6:

Запишите ключ.

ШАГ 7:

Поместите его в консоль разработчика facebook и сохраните. Теперь все готово. Любой, кто скачает ваше приложение, опубликованное с помощью ранее использовавшегося хранилища ключей, может войти в Facebook.

Наслаждаться

person sakramento    schedule 29.01.2015
comment
Следуя вашим советам, я вставил этот facebook-universalsignin.apk на мобильный телефон и установил его. А затем мое приложение установилось и запустилось в этой ситуации, также всплывающее окно facebook открыто для входа в систему, никаких других диалоговых окон не появляется, пожалуйста, помогите мне - person Harsha; 08.11.2016
comment
Вы установили facebook sdk со страницы разработчика и удалили обычное приложение facebook из игрового магазина? - person sakramento; 06.01.2017

Это выглядит безумно, но это работает

На самом деле проблема из-за того, что вы получили это приложение в личной учетной записи facebook, а хеш-ключ этой учетной записи несопоставим

Но вы не должны сталкиваться с этой ошибкой с реальным пользователем. Но я не уверен

В конце концов выполните следующий шаг:

  1. Перейдите в свою личную учетную запись facebook, в которую вы пытаетесь войти.
  2. Затем нажмите «Дополнительно» в папке приложения.

введите описание изображения здесь

  1. Нажмите Настройки

введите описание изображения здесь

А затем нажмите крестик

введите описание изображения здесь

И теперь вы можете войти через facebook. Но в следующий раз, если вы выйдете из системы и попытаетесь войти снова, вы столкнетесь с той же проблемой...

Тоже странно...

Но я не верю, что Facebook не знает об этом...

person Aleksey Timoshchenko    schedule 10.11.2016

Это сработало для меня

  1. Перейдите в консоль Google Play.
  2. Выберите Управление выпуском
  3. Выберите «Подписание приложений»
  4. Преобразуйте сертификат подписи приложения SHA-1 в Base64 (он будет отличаться от вашего текущего сертификата загрузки) с помощью этого инструмента: http://tomeko.net/online_tools/hex_to_base64.php?lang=en
  5. Введите SHA-1, преобразованный в Base64, в настройки панели инструментов разработчика Facebook и повторите попытку.

ваш Google Play SHA-1

person Evan    schedule 17.05.2020

Я также получаю ту же проблему, когда пользователь пытается войти в систему через Facebook.

Не работает: на устройстве установлено приложение Facebook.

Работает: приложение Facebook не установлено

Итак, следующий код решает проблему, когда приложение Facebook установлено на устройстве.

LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_ONLY); //This Line Solved Issue
LoginManager.getInstance().logInWithReadPermissions(context, Arrays.asList("public_profile", "email")); 
person Ketan Ramani    schedule 13.12.2019
comment
сэкономил мои часы ..!! - person Himani; 07.05.2021

Я обнаружил, что мой SHA-1, который использовался для подписи приложения, загружаемого в магазин Google Play, неверен. Я понял, что мое приложение было подписано в магазине Google Play с другим токеном. Я выполнил следующие шаги:

  1. Перейдите в консоль Google Play.
  2. Щелкните Управление выпуском.
  3. Нажмите «Подписание приложений».
  4. Преобразование сертификата подписи приложения SHA-1 в Base64 (это будет отличаться от вашего текущего сертификата загрузки)
  5. Введите SHA-1, преобразованный с помощью Base64, в настройки панели инструментов разработчика Facebook.

    Теперь я могу войти в свое приложение, когда Facebook загружен на устройство Android.

person tnaught    schedule 01.07.2019

Использование хранилища ключей Debug, включая хранилище debug.keystore Android, присутствующее в папке .android, вызывало странную проблему; вход в систему с помощью кнопки входа в facebook в приложении для Android будет происходить идеально, как и хотелось в первый раз. Но когда я когда-либо выходил из системы и пытался войти в систему, выдавалось сообщение об ошибке: «Это приложение не имеет настроенных хэшей ключей Android». Пожалуйста, перейдите на http://....

Создание хранилища ключей с помощью команды keytool (keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) и размещение этого хранилища ключей в самой верхней родительской папке моих проектов и создание следующая запись в файле build.gradle проектов решила проблему:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

Обратите внимание, что вы всегда используете следующий метод внутри onCreate() вашей активности Android, чтобы получить хеш-значение ключа (для регистрации на сайте developer.facebook.com вашего приложения) вместо использования командной строки для создания хеш-значения в качестве командной строки в в некоторых случаях может быть указан неверный хэш ключа:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    PackageManager.GET_SIGNATURES);
            for (android.content.pm.Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());

                 String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("KeyHash:", sign);
                //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }
person Sandeep.R    schedule 18.04.2015
comment
Функция showHashKey работает как шарм, получая ключ, tnx - person dianakarenms; 31.05.2016

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

keytool -exportcert -alias "test fb sdk" -storepass android -keypass android -keystore "C:\keystore.keystore" | openssl sha1 -binary | openssl base64
person Leo Nguyen    schedule 08.05.2015

У меня возникла аналогичная проблема. После подписания и публикации моего приложения в Google PlayStore кажется, что хэш изменился. Я добавил новый хэш (как уже упоминалось) в сообщении Facebook к ключевым хэшам в моем приложении на сайте developer.facebook.com/app//settings. Теперь он снова работает.

person Ramon    schedule 12.07.2017

Возможно, вы используете неправильный пароль. Пароль по умолчанию для хранилища ключей отладки — android.

person Tausif Ul Rahman    schedule 17.05.2019

Моя проблема, возможно, связана с тем, что хэш был неправильно сгенерирован самим openssl, если кто-то сталкивается с аналогичной проблемой, используя метод, предоставленный самим руководством facebook для Android.

Один из способов справиться с этим:

  1. Получите свой sha1 с помощью этого инструмента:

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

  1. преобразовать его в base64 с помощью этого инструмента

http://tomeko.net/online_tools/hex_to_base64.php

кредит :

https://github.com/facebook/react-native-fbsdk/issues/424#issuecomment-469047955

person Eimihar    schedule 18.07.2019
comment
да, то же самое для меня. я сделал это правильно, но openssl сделал что-то, и это было неправильно. Это заняло 6 часов моего времени. - person touhid udoy; 14.09.2019

Вот хорошее решение для macOs, и оно работает для меня:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1-binary | база 64 OpenSSL

Здесь пароль хранилища ключей должен быть android. Спасибо

person Mir Mahfuz    schedule 20.06.2020
comment
Спасибо за ответ. Дело было в пароле. - person Satheesh; 25.07.2021

В процессе отладки

Скопируйте и вставьте этот код в метод OnCreate

       try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    getApplication().getPackageName(),
                    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));
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.d("KeyHash e1",e.getLocalizedMessage() +"");
        } catch (NoSuchAlgorithmException e) {
            Log.d("KeyHash e2", e.getLocalizedMessage() +"");
        }

Откройте Logcat и отфильтруйте/найдите 'D/KeyHash:'

D/KeyHash: D5uFR+65hafzotdih/dOfp14FpE=

Затем откройте https://developers.facebook.com/ и откройте YourApp/ Настройки/Основные
Прокрутите вниз до Раздел Android, затем вставьте хэши ключей и сохраните

person Muhammad Asyraf    schedule 27.09.2020

Ответ @Ketan Ramani помог мне, но в моем случае я не использовал LoginManager, вместо этого я регистрировал обратный вызов на изображении, если вы используете registerCallback на любом изображении, сделав его кнопкой входа, используя код ниже

 loginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);
person AgentP    schedule 05.02.2020

Я пробовал все на этой странице, но безуспешно, пока я не сделал перерыв, затем, когда я продолжаю работать над этим, ничего не меняя, он внезапно работает. Может быть (только может быть) facebook требуется время, чтобы зарегистрировать ключ

person Irfandi D. Vendy    schedule 16.02.2020

В правой части Android Studio перейдите к Gradle -> Tasks -> android -> signingReport и запустите его. Скопируйте ключ SHA-1 и преобразуйте его в base64, используя это, а затем добавьте преобразованный base64. hash для вашего приложения в консоли разработчика Facebook. Если вы хотите использовать хэш выпуска, запустите это в командной строке: keytool -exportcert -alias YOUR_KEYSTORE_ALIAS -keystore YOUR_KEYSTORE | openssl sha1 -binary | openssl base64 Где YOUR_KEYSTORE — это путь к .keystore или .jks, который вы использовали как signinConfig для вашего варианта выпуска, а YOUR_KEYSTORE_ALIAS — это псевдоним, который вы указали при создании хранилища ключей. Если вы не помните псевдоним, вы можете запустить keytool -v -list -keystore YOUR_KEYSTORE и посмотреть всю информацию о хранилище ключей.

person Iancu Vlad    schedule 19.08.2020

Просто запустите команду adb logcat | grep hash и найдите что-то вроде Key hash ABCDEFGH1234= does not match any stored key. Теперь сохраните этот хэш на консоли разработчика fb.

person Dinesh Verma    schedule 30.11.2020

У меня такая же проблема, когда я интегрирую facebook, и я решил эту ошибку с помощью следующих шагов:

  1. откройте папку Android (File/open/yourFlutterProject/android) в вашем проекте флаттера
  2. теперь вы можете видеть поле градиента в правом верхнем углу -------Gragle Image
  3. выполните следующие действия (gradle/android/app/tasks/android/signingReport) и щелкните по нему.
  4. теперь вы можете увидеть ключ SHA-1 вашего проекта, обратите внимание на него.
  5. теперь откройте этот сайт (Ссылка на сайт) и преобразуйте SHA-1 в хеш-ключ, и вы получите свой хэш-ключ значение, обратите внимание.
  6. не обновлять/изменять этот хеш-ключ с текущим хэшем в вашей консоли developer.facebook
  7. теперь работает идеально.
person Jay Kundaliya    schedule 24.04.2021


Проверьте свой google-services.json . Может быть, это другой. Загрузите последний файл google-services.json и запустите приложение. Надеюсь, поможет.

person Shubham Gupta    schedule 10.01.2017