Android-приложение Key Hash не соответствует сохраненным хэшам ключей

У меня есть приложение для производства в Play Маркете, в котором используется логин с SDK для Facebook. Когда я отлаживаю приложение из Eclipse, нет никаких проблем, но когда его на производстве он дает мне следующую ошибку после того, как Facebook спросит меня о разрешениях. Я добавил на странице своего приложения на developers.facebook.com ключевой хэш, сгенерированный с помощью keytool, используя эту команду:

Keytool -exportcert -alias diego -keystore "C: \ Users \ Diego \ Desktop \ CeluChat.KeyStore" | "C: \ openssl \ bin \ openssl.exe" sha1 -binary | "C: \ openssl \ bin \ openssl.exe" base64

CeluChat.KeyStore – хранилище ключей, которое я использовал, когда я экспортировал подписанное приложение, и когда keytool прогоняет меня за пароль, я ввел то же самое при экспорте.

Но ошибка, которая дает мне производство (скачанная из Play Маркета):

10-20 22: 21: 10.752: W / fb4a (:): BlueServiceQueue (5872): com.facebook.http.protocol.ApiException: Хэш ключа VQ3XhZb5_tBH9oGe2WW32DDdNS0 не соответствует какому-либо сохраненному хэшу.

Хэш ключа, который находится на исключении, отличается от хэша ключа, сгенерированного с помощью keytool. В любом случае я добавил «Кэш-Хэш» на Facebook, но он все еще не работает.

Solutions Collecting From Web of "Android-приложение Key Hash не соответствует сохраненным хэшам ключей"

Facebook каким-то образом заменяет +, – и / с _

Поэтому просто попробуйте заменить _ на +, – и / и добавить этот хэш-ключ.

Надеюсь, это сработает.

Я использовал это, чтобы показать ключ при запуске приложения. В моем случае я получил неправильный хэш ключа из команды keytool. Обратите внимание: если вы вводите неправильный пароль (намеренно), вместо получения ошибки генерируется неверный ключ. Используйте это, чтобы получить правильный хеш и посмотреть, соответствует ли он таковому в журнале ошибок

try { PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT); Log.e("MY KEY HASH:", sign); Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show(); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } 

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

http://www.easyfacebookandroidsdk.com/download/keyhash.zip

Я просто обнаружил ошибку на странице ввода ключевого слова Sample App: Если вы вставляете хеш-ключ из приложения, не нажимая Enter, а затем нажмите кнопку «Сохранить изменения», новый код исчезнет, ​​но на странице появится сообщение «Сохранено !» Ответное сообщение. Это неправда: это не спасло. Вы должны нажать клавишу Enter после вставки хеш-ключа, а затем нажать «Сохранить изменения».

Я сохранил ключ, включая символ trailing =. Это сработало.

Простой поместите возвращенный хэш-код сообщения об ошибке:

 10-20 22:21:10.752: W/fb4a(:):BlueServiceQueue(5872): com.facebook.http.protocol.ApiException: Key hash VQ3XhZb5_tBH9oGe2WW32DDdNS0 does not match any stored key hashes. 

VQ3XhZb5_tBH9oGe2WW32DDdNS0

На Facebook разработчикам ключевые хэши вашего приложения.

Надеюсь, эта помощь.

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

Но как только приложение выходит из игрового магазина, мы склонны забывать о процедуре, которая еще не решена. И мы заканчиваем такую ​​же ошибку:

 05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): Exception during service 05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): com.facebook.http.protocol.ApiException: Key hash XXXXXXXXXXXXXX does not match any stored key hashes. 

Для этого Jus получил контрольный список:

1) Использование отладочного ключа при разработке приложения

Сайт разработчика Facebook очень полезен. Просто скопируйте код, который у них есть на странице «Начало работы» в командной строке. а именно:

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

Пароль к нему – андроид, и после него вы получите отладочный ключ.

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

2) Создание отладочного ключа после подписания заявки

После того, как приложение будет готово для загрузки в магазин Google Play, нам нужно подписать его, используя ключ, значение которого генерируется из хранилища ключей. Это объясняется Сатишем в его ответе . с помощью :

 keytool -exportcert -alias <Alias Name here> -keystore <Path to keystore> | openssl sha1 -binary | openssl base64 

Это дает вам другой ключ, чем ключ отладки.

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

Попробовав все вышеперечисленное, я попробовал это .. и работал !!!

  1. Скопировать ключевой хэш было то же самое, что Facebook дает на исключение,
  2. Замените "_" на "/" и добавьте "=" в конец,
  3. Добавить в Facebook
  4. Также еще раз проверьте имя пакета и название операции. Это сработало для меня !!.

Ну, если ур с использованием Windows использует эту команду в cmd.

Переместить в C: \ Program Files \ Java \ jdk1.8.0_25 \ bin

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\openssl.exe" base64

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

Это решение.

Просто замените хэш-код ошибки в приложении https://developers.facebook.com/app …!

100 процентов это будет работать для уверенности.

-Sunil

Включить Single Sign On Включите одиночный вход для вашего приложения, установив Single Sign On на Yes ниже. Проверьте. 9 на https://developers.facebook.com/docs/facebook-login/android