В одном из моих приложений мне нужно получить данные из Facebook ... Я делаю это:
Я создал идентификатор приложения . Он успешно входит в систему, но после выхода из системы я вхожу в систему, а затем выдает:
Что не так я делаю? Я использую Facebook SDK ... Я установил 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");
}
Ответы:
Сгенерированный хэш-ключ неверен. Вы можете получить хеш-ключ, используя два шага.
Один из них через командную строку. Еще один через кодирование. Хеш-ключ в командной строке работает только в первый раз. Я не знаю причину. У меня тоже есть такая же проблема. Так что я попробовал это программно.
Следуй этим шагам:
Вставьте следующий код в
oncreate()
.Измените «com.example.packagename» с именем вашего пакета в приведенной выше кодировке в обязательном порядке (вы можете найти имя вашего пакета в файле манифеста Android).
Запустите ваше приложение. Перейдите к мероприятию, в которое вы вставили вышеуказанный код. В файле LogCat найдите «KeyHash». Вы можете найти ключевой хеш. Скопируйте ключ и перейдите на страницу панели приложения Facebook. Зайдите в настройки и введите детали, как на картинке ниже.
После того, как вы закончили вышеуказанный шаг, перезапустите приложение снова. Теперь вы можете войти в Facebook. Для получения более подробной информации о ключевом хеше, проверьте ссылку .
Если вы добавили неверную информацию на странице настроек, это означает, что она выдаст ошибку. Так что используйте правильную информацию там. А также, если общественности (кроме вас) необходимо использовать ваше приложение, вам необходимо активировать разрешение (измените «да» в «Статус и проверка» рядом с настройкой) .
источник
Если вы используете подпись приложения Google Play:
Откройте раздел подписи приложения в консоли Google Play и получите хэш SHA-1 в разделе сертификата подписи приложения . Затем преобразуйте его в Base64 , например, с помощью этого инструмента: Hexadecimal -> base64 string decoder
источник
echo YOUR_SHA1_CERTIFICATE_COPIED_FROM_GOOGLE_PLAY | sed s/\://g | xxd -r -p | base64
Если вы столкнулись с этой проблемой, поместите этот ключ в ваш developer.facebook.com :
Затем убедитесь , что ваше приложение в прямом эфире на developer.facebook.com .
Этот зеленый кружок указывает на то, что приложение работает:
Если это не так, выполните следующие два шага, чтобы оживить приложение:
Шаг 1 Перейдите в свое приложение → настройки → добавить контактный адрес электронной почты и примените Сохранить изменения.
Шаг 2 Перейдите к опции « Просмотр приложения» и убедитесь, что для этого переключателя установлено значение « Да» . Я добавил скриншот:
Примечание. Если вы хотите скопировать хеш-ключ, проверьте BlueServiceQueue в LogCat .
источник
BlueServiceQueue
в logcatУ меня та же проблема. Я был уверен, что это из-за очень маленькой ошибки, и да, это было!
Я нашел решение:
При создании отладочного хеш-ключа на моем компьютере я ввел пароль своей системы. Но пароль должен быть следующим -
Введите пароль хранилища ключей: "Android". Это была единственная проблема в моем случае.
----- Для генерации хеш-ключа Debug используйте эту команду -
Введите пароль хранилища ключей: «Android»
----- генерировать релиз хэш ключа, используйте эту команду -
Укажите свой пароль хранилища ключей после выполнения этой команды.
источник
Я испытал ту же проблему. Я провел небольшое исследование возможных причин такого странного поведения и обнаружил следующее:
Во время первого запуска нового приложения Facebook оно разрешит подключение / вход в систему, даже если вы не указали ни одного ключевого хэша.
Для меня учебник, предоставленный Facebook, не сгенерировал правильный хэш ключа, потому что он давал неправильную конфигурацию . При выполнении:
убедитесь, что вы проверили все свойства -
HOMEPATH
наличие, хранилище ключей и т. д. Возможно, вам также придется указать пароль.То, что породило правильную конфигурацию, было предложено @Mahendran .
Кроме того, если вы видите сообщение об ошибке, первоначально опубликованное ( http://i.stack.imgur.com/58q3v.png ), наиболее вероятно, что ключевой хеш, который вы видите на экране, является вашим настоящим. Если ничего не работает, попробуйте ввести его в Facebook.
Я получил все эти результаты с: Windows 7 64-разрядная версия, Android Studio 1.2.2, JDK 7.
источник
Согласно Facebook Login для Android , вы должны указать ключевое значение хеша. Чтобы получить его, вам понадобится ключ, используемый для подписания вашего заявления.
источник
Вы должны создать два ключевых хэша, один для отладки и один для выпуска.
Для хэша ключа отладки :
На OS X запустите:
В Windows запустите:
Отладка источника хэшей
Для хэша ключа Release :
На OS X запустите (замените то, что находится между
<>
вашими значениями) :В Windows используйте (замените то, что находится между
<>
вашими значениями) :Разблокировать источник хэшей
источник
Я перепробовал все предыдущие ответы, и ничто не помогло моему делу с моими клиентами!
Затем мой клиент вспомнил, что на его устройстве установлено приложение Facebook. После того, как он удалил это. логин работал отлично.
Хеш-ключ был изменен, и я заменил старые хеш-ключи в Консоли разработчиков Facebook на ключ от ошибки (как предложено выше), и он работает!
Само приложение Facebook может быть проблемой, так что вам лучше разобраться с этим на устройстве с установленным приложением Facebook и на устройстве с не установленным приложением Facebook и обрабатывать оба случая ...
источник
Вот как я решил эту проблему:
Сначала вы должны получить значение SHA-1. Для этого есть два пути.
Получить значение SHA-1 в Android Studio.
ИЛИ
Получить значение SHA-1 из файла хранилища ключей .
Скопируйте значение SHA-1 в буфер обмена следующим образом:
И откройте шестнадцатеричный -> Base64 строковый декодер, чтобы преобразовать значение SHA-1 в Base64.
Это то, что требует Facebook.
Получите сгенерированный хеш «******************** =» и скопируйте ключевой хеш в приложение Facebook.
источник
У меня была такая же проблема. Сначала войдите в систему, просто отлично, но затем, хеш неверного ключа.
Facebook SDK для Unity получает неверный ключ хэша. Он получает ключ от "C: \ Users \" вашего пользователя ".android \ debug.keystore" и, в идеальном мире, он должен получить его из хранилища ключей, созданного в вашем проекте. Вот почему он говорит вам, что хэш ключа не зарегистрирован.
По предложению Мади , вы можете следовать инструкциям по этой ссылке, чтобы найти правильный ключ. Просто убедитесь, что они указывают на хранилище ключей внутри вашего проекта. В противном случае вы не получите правильный ключ.
источник
Следующий код даст вам ваш хеш для Facebook, но вы должны выполнить следующие шаги, чтобы получить хеш кандидата на релиз.
Скопируйте и вставьте этот код в вашу основную деятельность
Создайте подписанный файл APK .
https://developers.facebook.com/apps
. Это в настройках.источник
После долгих исследований мы нашли решение.
Мы установили разрешения как:
Это сработало в первый раз, но когда мы снова вошли в Facebook, это дало Invalid Hash Error .
Простым решением было изменить вышеприведенную строку на:
И это сработало как блаженство!
Facebook должен вернуть правильное исключение вместо вводящей в заблуждение неверной ошибки хеш-ключа.
источник
После стольких испытаний я наткнулся на решение этой проблемы. Я сгенерировал и добавил ключи отладки и выпуска в консоль разработчика Facebook и все еще получил ошибку.
Единственное решение, которое мне помогло, - это удалить программу OpenSSL из Google и загрузить из Win32 / Win64 установщик OpenSSL для Windows
Это действительно работает как волшебство.
источник
Несмотря на то, что на этот вопрос было дано множество полезных способов, я просто хотел добавить, что когда я следовал за ответом Рафаля Малекса (используя хеш-ключи на консоли Google Play), я НЕ смог использовать ключ подписи приложения SHA1, но все равно получил общий ошибка из фейсбука. Вместо этого мне нужно было использовать отпечаток сертификата SHA-1 из части « Загрузить сертификат» (чуть ниже части «Подписание приложения» в консоли Google Play). Тот же процесс в противном случае;
Скопируйте отпечаток сертификата SHA-1 из раздела « Загрузка сертификата » в консоли Google Play.
Преобразуйте SHA-1, используя: http://tomeko.net/online_tools/hex_to_base64.php и скопируйте вывод (base64)
Вставьте его во ввод ключевых хэшей на developer.facebook.com и сохраните изменения.
Надеемся, что этот ответ не является избыточным и поможет тому, кто не может заставить его работать с сертификатом подписи приложения.
Теперь вход в Facebook работает в моем приложении как в режиме отладки, так и в режиме выпуска.
источник
Вставьте следующий код в ваш метод OnCreate:
Просто измените имя пакета. Затем перейдите к файлу LogCat и выберите Поиск отладки здесь. Тогда вы найдете ключ хеша. Теперь скопируйте этот хэш-ключ и перейдите на сайт developer.facebook.app_id, отредактируйте ваш хеш-ключ и нажмите Save. Теперь запустите ваш проект Android снова. Я думаю, что проблема будет решена.
источник
Это может помочь кому-то с той же проблемой.
Сгенерируйте ключевой хеш, используя код ниже
Как использовать keytool
Вставьте его в обязательное поле в Facebook разработчике
В Android Studio, меню Файл → Структура проекта
Добавьте параметры подписи.
Выберите вкус
Выберите конфигурацию подписи, которую мы создали.
Выберите тип сборки
Выберите вариант сборки и постройте его
источник
У меня была такая же проблема, когда я отлаживал свое приложение. Я переписал хэш, который вы вычеркнули на прикрепленном изображении (тот, который Facebook считает недействительным), и добавил его в консоль разработчика Facebook к ключевым хэшам. Просто будьте осторожны с опечатками.
Это решение больше похоже на простой обходной путь, чем правильное решение.
источник
Если вы набираете хеш вручную (например, с мобильного телефона на панель инструментов Facebook), обязательно различайте маленькие буквы L и прописные I.
источник
источник
То, что использовал Facebook, не является паролем по умолчанию и псевдонимом для отладки. Вам нужно изменить его следующим образом, и он будет работать.
Если вы ничего не меняли с паролем по умолчанию, это должен быть «android» .
Вы также можете настроить его в файле build.gradle. Но тот же пароль псевдонима должен использоваться для генерации хеша:
источник
Здесь много правильных ответов. Всего лишь одно:
Вставьте полученный хеш в Приложение → Настройки → Главное , а не через руководство по быстрому запуску.
источник
У меня такая же проблема.
Убедитесь, что вы создали APK-файл на том же устройстве, на котором был создан хеш-ключ, который хранится в разделе разработчиков Facebook.
источник
Я исправил это, добавив следующее в
MainApplication.onCreate
:Затем я загрузил это в консоль разработчика Google, а затем скачал производный APK, который по какой-то причине имеет совершенно другой ключевой хэш.
Затем я использовал LogCat для определения нового ключевого хэша и добавил его Facebook, как обрисовали другие пользователи.
источник
Если вы генерируете хэши ключей разблокировки, убедитесь, что вы вводите реальный пароль вашего хранилища ключей, а не «android».
Это была моя проблема. Отладочный релиз работал, но релиз APK не был.
источник
Используйте приведенный ниже код в методе onCreate () вашей деятельности:
Запустите этот код. Это сгенерирует хеш-ключ. Скопируйте этот ключ в настройках приложения Facebook и сохраните изменения. Затем войдите в свое приложение. Это будет прекрасно работать и в будущем.
источник