У цій програмі не налаштовано хеші ключів 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.