Я создаю приложение, которое будет иметь поддержку для facebook. Я загрузил API facebook и их образец под названием «Hackbook» из оригинального репозитория Git. Проблема заключается в логине - если оригинальное приложение FB не установлено на телефоне, логин идет через настраиваемый диалог, и все работает, но если приложение FB установлено, Hackbook автоматически перенаправляется в оригинальное приложение FB, а затем ничего не происходит. Невозможно войти в систему. Я тестировал это на пяти разных телефонах, и всегда была та же проблема.Ошибка входа в API Facebook с помощью приложения FB, установленного по телефону
ответ
У меня была аналогичная проблема. В моем случае я не создал хэш-ключ, используя мой ключ подписи. У меня только один хэш-ключ, созданный с помощью ключа подписи debug.keystore.
Как только я создал хэш-ключ с помощью ключа подписи к выпуску приложения, эта проблема была разобрана. Если вы еще этого не сделали, создайте новый хэш-ключ, используя свой ключ подписи (для загрузки на рынок) и добавьте его в панель управления facebook вашего приложения.
Надеюсь, это поможет.
Я трудился в течение двух дней & получил решение в прошлом, это НЕПРАВИЛЬНО способ получить хэш-ключ -
keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* | [openssl_bin_directory]\openssl sha1 -binary | [openssl_bin_directory]\openssl base64
правильный путь имеет тип эти 3 линии, по одному время в cmd. После первой строки вам будет предложено вставить пароль хранилища ключей.
keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* > [openssl_bin_directory]\debug.txt
[openssl_bin_directory]\openssl sha1 -binary [openssl_bin_directory]\debug.txt > [openssl_bin_directory]\debug_sha.txt
[openssl_bin_directory]\openssl base64 -in [openssl_bin_directory]\debug_sha.txt > [openssl_bin_directory]\debug_base64.txt
Если вы хотите узнать подробности, то RIGHT способ описан здесь -
или здесь
живите хэш ключа с помощью этой функции для обоих (debug и release apk) и поместите его в свое приложение в developer.facebook.com/a имп
private void calculateHashKey(String yourPackageName) {
try {
PackageInfo info = getPackageManager().getPackageInfo(
yourPackageName,
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();
}
}
это поможет мне много .. Надеюсь, что это поможет вам тоже ..
Я установил этот вопрос. После получения Key hash с помощью keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Я успешно выполнил вход в первый раз в режиме деблокирования ... Затем второй раз я получил общую ошибку Ваш ключ "*********real*key************"
не соответствует разрешенным ключам, указанным в настройках вашего приложения.
Просто используйте "*********real*key************"
, который Facebook дает в сообщении об ошибке. Я успешно вступил в систему в режиме деблокирования. Так что при вводе этого ключа обязательно используйте тот же самый ключ. ПИСЬМА I, small(L) i.e (l)
вызовет у вас проблемы. Я сделал два ключа, в первом ключе я использовал small(L) i.e (l)
, а во втором ключе я использовал I. и поместил эти ключи в приложение разработчика.
Работает сейчас ....
Это была конкретная проблема в моем случае ... единственное решение, которое сработало! и часть о маленьком «L» правильна, а также Big 'I' (который может выглядеть как маленький «L» в некоторых шрифтах. –
В моем случае проблема заключалась в том, что пользовательский логин отменяется, когда приложение facebook установлено на устройстве даже после создания правильных клавиш.
Я добавил следующую строку перед входом в систему, и она отлично работает.
LoginManager.getInstance().logOut();
Я добавил этот хэш-ключ в панель управления, но проблема все еще здесь. Должен ли я добавить ключ хеширования в fb api где-нибудь? – virusss8
@ virusss8: Вам не нужно добавлять hashkey в ваше приложение. Следуйте этому шагу и скажите мне результат. Откройте файл класса Util в вашем facebook-sdk и измените «private static boolean ENABLE_LOG = false» на «true». Теперь держите телефон подключенным к компьютеру разработки и запустите приложение, созданное с помощью подписанного apk и войдите в систему. Сохраните окно DDMS и посмотрите, генерирует ли он ошибку. –
D/Facebook-authorize (25124): Ошибка входа: invalid_key: несоответствие клавиш Android. Ваш ключ «********* real * key ************» не соответствует разрешенным ключам, указанным в настройках вашего приложения. Проверьте настройки своего приложения на http://www.facebook.com/developers , но я никогда не устанавливал этот ключ нигде. Какой ключ? – virusss8