Андроидная интеграция facebook недействительный хэш ключа

Привет всем в одном из моих приложений мне нужно получить данные fb … Я делаю это ..

Я создал идентификатор приложения, в котором он входит в систему, но после выхода из системы i Log In, он дает мне

Скриншот неверной ключевой ошибки хэша facebook

Что я не так делаю? Пожалуйста, предложите использовать sdk для Facebook … Я установил Facebook в свой телефон … это хорошо работает в эмуляторе, у которого нет встроенного приложения Facebook

Это мой код

if (FB_APP_ID == null) { Builder alertBuilder = new Builder(this); alertBuilder.setTitle("Warning"); alertBuilder.setMessage("A Facebook Applicaton ID must be " + "specified before running this example: see App.java"); alertBuilder.create().show(); } // Initialize the dispatcher Dispatcher dispatcher = new Dispatcher(this); dispatcher.addHandler("login", LoginHandler.class); dispatcher.addHandler("stream", StreamHandler.class); dispatcher.addHandler("logout", LogoutHandler.class); // If a session already exists, render the stream page // immediately. Otherwise, render the login page. Session session = Session.restore(this); if (session != null) { dispatcher.runHandler("stream"); } else { dispatcher.runHandler("login"); } 

Solutions Collecting From Web of "Андроидная интеграция facebook недействительный хэш ключа"

Неправильный ключ генерации генерации. Вы можете получить хэш-ключ, используя два шага. Один из них – в командной строке. Другой – через кодирование. Хэш-ключ через командную строку работает только в первый раз. Я не знаю причины. У меня тоже такая же проблема. Поэтому я пробовал это с помощью программно.

Выполните следующие действия:

Вставьте следующий код в oncreate() .

 try { PackageInfo info = getPackageManager().getPackageInfo( "com.example.packagename", 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) { } catch (NoSuchAlgorithmException e) { } 

Измените «com.example.packagename» с вашим именем пакета в вышеуказанной кодировке без сбоев (вы можете найти имя своего пакета в файле манифеста Android).

Запустите приложение. Перейдите к действию, в котором вы вставили вышеуказанный код. В logcat найдите «KeyHash». Вы можете найти ключевой хеш. Скопируйте хэш ключа и перейдите на страницу панели приложений Facebook. Перейдите к настройкам и введите данные, как показано на следующем рисунке.

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

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

Если вы добавите неверную информацию на страницу настроек, это приведет к некоторой ошибке. Поэтому используйте там правильную информацию. А также, если публичная (кроме вас) необходимость использования вашего приложения означает, что вам нужно включить разрешение (change "yes" in the "Status & Review" next to setting) .

Если вы столкнулись с этой проблемой, поместите этот ключ в свой developer.facebook.com

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

Затем убедитесь, что ваше приложение в прямом эфире

developer.facebook.com

Этот зеленый круг указывает, что приложение в прямом эфире

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

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

Шаг 1 Перейдите в свое приложение -> настройка => и добавьте контактный адрес электронной почты и примените сохранение изменений

Setp 2 Затем перейдите к опции просмотра приложения и убедитесь, что этот переключатель включен. Да, я добавил снимок экрана.

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

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

Когда я генерирую хеш-ключ отладки на моем компьютере, я ввел пароль своей системы. Но пароль должен быть следующим:
Введите пароль хранилища ключей: "android"
Это была единственная проблема в моем случае.

Чтобы создать хеш-ключ Release , используйте эту команду –

Keytool -exportcert -alias "alias of keystore" -keystore "Ваш путь к хранилищу ключей при подписании приложения" | Openssl sha1 -binary | Openssl base64

Предоставьте пароль своего хранилища ключей после выполнения этой команды.

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

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

  • Для меня учебник, который предоставил Facebook, не вызвал правильного ключевого хеша, потому что он давал неправильную конфигурацию . При выполнении:

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

Убедитесь, что вы проверяете все свойства – HOMEPATH , существование хранилища ключей и т. Д. Возможно, вам также необходимо предоставить пароль.

  • То, что создало правильную конфигурацию, было решением, предложенным @Mahendran .

  • Кроме того, если вы видите первоначально опубликованную ошибку ( http://i.stack.imgur.com/58q3v.png ), скорее всего, ключевой хэш, который вы видите на экране, является вашим реальным. Если ничего не работает, попробуйте ввести его в Facebook.

Я получил все эти результаты с: 64-разрядной версией Windows 7, Android Studio 1.2.2, JDK 7.

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

 keytool \ -exportcert \ -alias YourKeyAlias \ -storepass YourStoreKeyPassword \ -keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64 

Я пробовал все вышеперечисленное, и ничто не помогло моему делу с моими клиентами! Затем мой клиент вспомнил, что на своем устройстве установлено приложение Facebook. После его удаления логин работал отлично. Изменен hashkey, и я заменил старые ключи хэша на Facebook Developers Console с ключом от ошибки (как было сказано выше), и он работает! Само приложение Facebook может быть проблемой, поэтому вам лучше понять это на устройстве с установленным приложением Facebook и на устройстве с приложением Facebook, которое не установлено и не обрабатывает оба случая.

Если вы используете Google Play App Signing:

Откройте раздел подписи в приложении Google Play Console и получите SHA1 сертификата подписи приложения , а не конвертируйте его в base64 , например, с помощью этого инструмента: http://tomeko.net/online_tools/hex_to_base64.php?lang=en

Скриншот консоли

Конвертировать в скриншот base64

Вставьте следующий код в свой метод OnCreate

 try { PackageInfo info = getPackageManager().getPackageInfo( "com.example.packagename", 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) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } 

Просто измените имя пакета. Затем перейдите в свой лог-журнал и выберите «Отладочный поиск» здесь, после чего вы найдете хэш-ключ. Теперь скопируйте этот хэш-ключ, а затем перейдите на сайт разработчика.facebook.app_id, затем отредактируйте свой хэш-ключ, затем нажмите save. Теперь запустите проект Android. Я думаю, что проблема будет решена.

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

Хотя это не нить Единства, я нашел здесь свой ответ. Поэтому я оставлю свой ответ, на всякий случай, когда кто-то (бродящий, как я) наткнулся на него.

Facebook SDK для Unity получает неправильный хэш. Он получает ключ от «C: \ Users» вашего пользователя «.android \ debug.keystore», и в идеальном мире он должен получить его из хранилища ключей, которое вы создали в своем проекте. Вот почему он говорит вам, что ключевой хеш не зарегистрирован.

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

После долгого исследования мы нашли решение.

Мы установили разрешения как:

LoginButton.setReadPermissions (public_profile email);

Это работало впервые, но когда мы снова вошли в FB, он дал ошибку Invalid Hash.

Простое решение заключалось в том, чтобы изменить указанную выше строку следующим образом:

  loginButton.setReadPermissions(Arrays.asList( "public_profile", "email")); 

И это работало как блаженство!

Надеюсь, это помогает кому-то.

Facebook должен возвращать правильное исключение вместо ошибочной ошибки ключа хеша.

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

 try { PackageInfo info = getPackageManager().getPackageInfo( "com.example.packagename", 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) { } catch (NoSuchAlgorithmException e) { } 
  1. Сгенерировать подписанный apk.
  2. Подключите телефон к ноутбуку и убедитесь, что он подключен.
  3. Установите и запустите apk в телефоне, вручную переместив apk release на телефон.

  4. Теперь посмотрите на android logcat (используйте фильтр KeyHash:), вы должны увидеть хеш-ключ релиза для facebook. Просто скопируйте и вставьте его в свой https://developers.facebook.com/apps, он находится под настройками.

  5. Теперь вы можете протестировать приложение, которое должно работать отлично.

    удачи.

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

Это решение больше похоже на легкую работу, чем на правильное решение.

Это может помочь кому-то с той же проблемой

  1. Генерировать хэш ключа, используя код ниже

keytool -exportcert -alias <your_keystore> alias -keystore <your_keystore_file> | openssl sha1 -binary | openssl base64

Как использовать keytool

2. Вставьте его в нужное поле в приложении facebook

3.Индивидуальная студия File-> Структура проекта Введите описание изображения здесь

Добавить параметры подписи

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

Выберите подписанный конфиг, который мы создали

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

6.Выберите сборку varient и постройте ее

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

Используемая facebook не является паролем по умолчанию и псевдонимом для отладки. Вам нужно изменить его, и он будет работать.

 /usr/lib/jvm/jdk1.8.0_66/bin/keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 

Если вы ничего не изменили с помощью пароля по умолчанию, он должен быть андроидом. Вы также можете настроить его в файле build.gradle. Но для генерации хэша должен использоваться один и тот же пароль.

 android{ signingConfigs { release { storeFile file("~/.android/debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } } 

Ребята здесь много правильных ответов. Только одно. Вставить полученный хэш в приложение -> Настройки -> Главная не через быстрый старт.

Использовать ниже код в методе onCreate () вашей деятельности

 try { PackageInfo info = getPackageManager().getPackageInfo( "your application 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) { } catch (NoSuchAlgorithmException e) { } 

Запустите этот код, это создаст хэш-ключ. Скопируйте эту настройку KeyHash в приложение Facebook -> Сохраните изменения. Затем войдите в свое приложение. Это будет отлично работать и в будущем.