У цій програмі не налаштовано хеші ключів Android. - Увійти з Facebook SDK


81

У мене є проблема з входом в обліковий запис facebook у моїй заявці. Я читав у Facebook Doc. І я все зробив, як документ Facebook.

Перший вхід у систему з обліковим записом facebook у програмі - УСПІШНО ! а потім вийти з програми. Я хочу ввійти ще раз за допомогою свого акаунта у facebook. Але не працює !! І я взяв цей Ексепітон! Будь ласка, допоможи мені !

Виняток: у цій програмі не налаштовано хеші ключів Android. Налаштуйте хеші ключів програми за адресою http: developers.facebook.com/apps/ "Ідентифікатор програми"

Остаточно; Раніше я входив до коду генарату HashKey

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     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("MY KEY HASH:", sign);
          //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
        }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Я вирішив своє питання. Я повинен був зробити налаштування на Facebook. Кроки:

  1. Перейдіть на сторінку розробника facebook: https://developers.facebook.com/
  2. Відкрийте вкладки програми та натисніть Налаштування

  3. Вставте генерувальний хеш-ключ у поле HashKey = Якщо у вас його ще немає, отримайте ключову хеш-частину коду

  4. І тоді єдиний вхід буде "Так": Єдиний вхід: увімкніть цей параметр.

Я хотів поділитися своїм рішенням. Можливо, комусь потрібно це рішення. Щасти !


1
Дякую - ви допомогли мені, і я зазнав ту саму проблему +1
Саймон

Facebook надає зараз дуже гарне пояснення щодо швидкого запуску, як генерувати хеші, після натискання кнопки налаштувань та додавання нової платформи: Для Mac: 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
FilipR

Як ви вирішили це питання?
andrei

2
Натомість слід опублікувати своє рішення як відповідь та позначити його як відповідь. Це перестане відображати це запитання як без відповіді.
Суфіан

Відповіді:


15

Вам не потрібно генерувати свій хеш-ключ. Коли ви спробуєте отримати доступ до facebook із вашої програми, ви отримаєте повідомлення про помилку із повідомленням про те, що "[Хеш-ключ]" не зареєстровано та не налаштовано. Просто скопіюйте цей ключ і перейдіть на сторінку developer.facebook.com, де ви зареєстрували свою програму для перевірки на facebook, та включіть її під хеші ключів.

Пам'ятайте: для кожного пристрою хеш-клавіша може бути різною. Вам потрібно включити його свіжо.

За замовчуванням цей ключ повинен робити: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

Крім того, перед усім вам потрібно надати facebook із даними про ваш додаток, а також скріншоти місця, де ви використовуєте функції facebook, та причини того, чому ви використовуєте. Вони повинні це перевірити.


Дякую Неларші за вашу відповідь. Але я вирішив інший шлях.
Тарик Юртлу

2
@ TarıkYurtlu Що це? Я зареєстрував хеш-ключ, але він не спрацював. Якщо я видалю додаток facebook, це буде працювати. Чи слід мені реєструвати заявку на випуск, чи ми можемо зробити це для розробки?
Amt87,

4
Стара тема, але ... Чи не відрізняється ключ для кожної "підписаної версії apk", а не для кожного пристрою? Звичайно, якби це було для кожного пристрою, ніхто б не міг ним користуватися. Підказка іншим: Хеш-ключ між підписаною версією, яку ви завантажуєте, і тією, яку ви використовуєте, коли тільки розробляєте, відрізняються. Хоча ви можете додати кілька хеш-клавіш у facebook, це не повинно бути проблемою. У той момент, коли ви використовуєте інший ключ підписання, хеш зміниться.
renevdkooi

10

Щоб сформувати хеш ключа випуску, запустіть на Mac або Windows наступну команду, замінивши псевдонім ключа випуску та шлях до вашого сховища ключів. На OS X запустіть:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

У Windows використовуйте:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64


Посилання: https://developers.facebook.com/docs/android/getting-started/#create_hash


2

Якщо ви не опублікували свій додаток і просто хочете скористатися хешем версії налагодження, ви можете отримати його зі свого магазину ключів налагодження за допомогою цієї команди:

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

Детальніше про цю пов’язану публікацію SO


1

Існує простий спосіб отримати ключ Hash.

Просто введіть у свій основний файл .kt у метод onCreate такі рядки:

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

Потім скопіюйте результат на веб-сайт розробників facebook. Іноді результат не має однакового символу (=) у кінці сформованого рядка. Якщо так, додайте його вручну.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.