Создание хеш-ключа для приложения с помощью facebook sdk

Я использую facebook sdk для входа в свое приложение. Приложение отлично работает на устройствах HTC. Приложение также отлично работает на устройствах Samsung, если предварительно не установлено приложение facebook.

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

Подскажите, пожалуйста, как создать хэш-ключ. Я использую Ubuntu 10.4.

Когда я запускаю эту команду в терминале: -

keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64

Мне никогда не предлагается ввести пароль, хотя мне дают хеш-ключ.


person abhishek    schedule 13.05.2011    source источник
comment
[Здесь] [1] вы можете получить свой ответ, мне это тоже помогло. stackoverflow.com/a/12405323/2331725 [1]: stackoverflow.com/a/12405323/2331725   -  person Ashher Alam    schedule 02.07.2013
comment
Чтобы сгенерировать хэш-ключ [Простой метод здесь] [1] [1]: stackoverflow.com/questions/5306009/   -  person karthik    schedule 15.11.2013
comment
Я сгенерировал хеш ключа, но не знаю, куда его поместить, не могли бы вы посоветовать мне? Я запускаю студию Android на Ubuntu.   -  person Apurva    schedule 08.10.2015
comment
Вы нашли ошибку? Какая именно команда вам помогла? Я столкнулся с той же проблемой.   -  person Shruti    schedule 08.05.2017


Ответы (5)


Попробуй это:

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

Надеюсь, ты получишь. Я только что проверил и получил запрос на ввод пароля.

person Lavanya    schedule 13.05.2011
comment
Я не использую хранилище ключей отладки, чтобы сигнализировать о приложении. Я создаю новое хранилище ключей - person abhishek; 13.05.2011
comment
в моем случае он даже не запрашивает пароль для androiddebugkeystore ... что может быть не так - person abhishek; 13.05.2011
comment
Ты именно это напечатал? проверить пробелы и все? в случае отладки - person Lavanya; 13.05.2011
comment
Мне жаль, тогда я меньше понимаю. - person Lavanya; 13.05.2011
comment
Эта команда работала для меня на ubuntu 10.10, тогда как, как отмечалось в документации facebook, этого не произошло. Спасибо. - person scottyab; 20.07.2011
comment
Работал у меня на Ubuntu 12.04! - person Skynet; 07.01.2014
comment
Я сгенерировал хеш ключа, но не знаю, куда его поместить, не могли бы вы посоветовать мне? Я запускаю студию Android на Ubuntu. - person Apurva; 08.10.2015

Вы можете использовать этот блок кода для генерации хеш-ключа. Поместите этот блок кода в свой метод onCreate ().

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "Your package name", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("Your Tag", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
person ACengiz    schedule 19.02.2013
comment
У меня отлично сработало ... я также попробовал команду ниже, чтобы получить тот же результат: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64 - person Vinay; 17.10.2013
comment
это оно. не забудьте изменить имя вашего пакета на имя вашего пакета;) - person OWADVL; 25.03.2014
comment
Создает ли этот код один и тот же хэш-ключ как при отладке, так и при выпуске? - person Kostadin; 31.03.2014
comment
Я сгенерировал хеш ключа, но не знаю, куда его поместить, не могли бы вы посоветовать мне? Я запускаю студию Android на Ubuntu. - person Apurva; 08.10.2015

Если он не запрашивает пароль, сначала откройте терминал и введите:

sudo apt install openjdk-8-jre-headless

А затем следуйте обычному пути, просто введите:

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

Для пароля ставьте: android Все готово.

Этот ответ предназначен только для целей отладки, для целей выпуска используйте файл .jks для генерации хеш-ключа.

person Rishabh Chandel    schedule 09.02.2017
comment
Работал как шарм !! - person Shruti; 08.05.2017
comment
Спасибо, только что переключился на Ubuntu и пару часов пытался это исправить. - person Ahmad Magdy; 31.08.2019

Просто дайте команду как:

keytool -exportcert -alias androiddebugkey -keystore debug.keystore

и введите пароль нажатия клавиши или android или введите

Здесь вам нужно перейти в структуру каталогов до ".android", затем запустить эту команду. Обычно путь - C:\Users\User-name\.android>.

person rishi    schedule 17.10.2012
comment
Я сгенерировал хеш ключа, но не знаю, куда его поместить, не могли бы вы посоветовать мне? Я запускаю студию Android на Ubuntu. - person Apurva; 08.10.2015

Проверьте три части в вашей среде.

  1. где находится "debug.keystore"?

    найти / -name "debug.keystore"

    если вы не можете его найти, проверьте ваше затмение или ADT.

  2. что такое псевдоним?

    keytool -list -v -keystore "PATH_TO_DEBUG_KEYSTORE"

  3. Проверьте, установлен ли openssl

    openssl

Если все готово, он должен запросить пароль

person Kislingk    schedule 27.02.2013
comment
Я сгенерировал хеш ключа, но не знаю, куда его поместить, не могли бы вы посоветовать мне? Я запускаю студию Android на Ubuntu. - person Apurva; 08.10.2015
comment
после ввода пароля для выпуска apk показывает язык китайцев, пожалуйста, помогите мне - person Harsha; 29.09.2016