Подтвердить что ты не робот

Хэш-код Facebook не соответствует какому-либо сохраненному ключу

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

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

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

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

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

Спасибо, Yenthe

4b9b3361

Ответ 1

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

  • Удалите любое приложение на веб-сайте Facebook (developers.facebook.com).
  • Удалить файл debug.keystore под C:\Users\yourUserName\.android
  • Создайте новый ключ (снова запустив приложение)
  • Создайте новое приложение на сайте developers.facebook.com и добавьте новый хеш-ключ
  • Запустите приложение
  • Сукчес!

Ответ 2

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

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

2) Запишите эту хэш-клавишу.

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

Ответ 3

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

Сообщение об ошибке выглядит следующим образом:

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.

Ответ 4

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

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

2- По какой-то причине в документации они сообщают вам перейти к настройкам разработчика и добавить хеш-ключ для "Sample App" там, я думал, что каждый хэш-ключ для разработчика должен быть там, и это была моя ошибка, каждый у приложения есть собственное поле хеш-ключей для добавления, перейдите в свое приложение/настройки/андроид.

enter image description here

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

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

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());
    }
}

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

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

Удачи.

Ответ 5

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

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

OSX/Linux:

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

Окна:

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

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

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

Ответ 6

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

В чем проблема: добавление ключа в сообщение об ошибке в настройки панели управления Facebook.

Ответ 7

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

ШАГ 1:

Установите загружаемую вами фразу facebook, которую вы загрузили со страницы разработчика 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.

Enjoy

Ответ 8

  • Проверьте значение хеша ключа.
  • Удалите приложение Facebook с телефона.
  • Затем повторите попытку, используя SDK.

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

Ответ 9

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

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

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

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

  1. Перейдите в свою личную учетную запись Facebook, в которую вы пытаетесь войти
  2. Затем нажмите More в приложении dir

enter image description here

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

enter image description here

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

enter image description here

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

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

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

Ответ 10

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

  1. в андроид студии в правой панели Gradle>App>android>signingReport копия SHA1
  2. и откройте http://tomeko.net/online_tools/hex_to_base64.php для конвертации  ваше значение SHA1 в base64.

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

Ответ 11

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

Создание Keystore с помощью команды 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();
        }
    }

Ответ 12

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

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

Ответ 13

Обратите внимание:

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

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

ИЛИ

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

Вот как я решил эту проблему. Загрузите ваш 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 в base64.

Ответ 14

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

Ответ 15

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

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

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

Ответ 16

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

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

  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

Ответ 17

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

Ответ 18

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

  1. Откройте свой проект в Android Studio и запустите проект.
  2. Нажмите на меню Gradle.
  3. Выберите свое приложение и раскройте дерево задач.
  4. Дважды кликните на андроид → signatureReport и увидите магию Sample Image
  5. Результат после нажатия на вкладку выше Result after clicking above tab
  6. Скопируйте ключ SHA1 и найдите ключ SHA1 в ключе хэша
  7. После преобразования ключа SHA1 в ключевой хэш скопируйте новый ключевой хеш и вставьте его в консоль facebook. Это будет работать как шарм.

Ответ 19

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

Ответ 20

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