Хэш ключа не генерируется

Я пытался получить хэш ключа из своего приложения для Android. Facebook SDK 3.0 дал следующий код:

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

Когда я запускаю это, он сначала говорит binary:no error; Затем он запрашивает пароль, который я ввожу как android. После нажатия ввода он возвращается пустым, где я ожидаю код доступа.

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

Мой java keytool хранится в:

C:\Program Files\Java\jre7\bin

И OpenSSL хранится в:

F:\openssl\bin

Я указываю правильные пути к файлам, когда запускаю его в MD в Windows.

Пожалуйста, помогите мне разобраться в этом!


person thenoob    schedule 01.01.2013    source источник
comment
Также еще один здесь: stackoverflow.com/ вопросы/5306009/   -  person Stephen C    schedule 01.06.2014


Ответы (2)


Возможно, вы ошиблись паролем.

Посмотрите мой ответ здесь.

надеюсь, это поможет

person Shahar    schedule 18.07.2013

Windows всегда немного сложна и сложна, чтобы получить keytool, я предлагаю альтернативу. Запустите следующий код в методе onCreate вашего приложения:

   try {
        PackageInfo info = getPackageManager().getPackageInfo(
            "COM.YOUR.PACKAGE.NAME", 
            PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("My Keyhash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (Exception e) {
        Log.e("My Keyhash", e.toString());
    } 

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

РЕДАКТИРОВАТЬ:

хэш ключа загружен правильно, но сеанс по-прежнему не открывается ... при входе в Facebook он сначала запрашивает мое разрешение через приложение, а после того, как я принимаю всплывающее окно, появляется сообщение «com.facebook.facebookexception: сеанс предоставлен для запрос в неоткрытом состоянии"

Убедитесь, что у вас есть этот код в вашем фрагменте/активности:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
}
person Jesse Chen    schedule 01.01.2013
comment
спасибо .. хэш ключа был сгенерирован, но я обновил свое приложение, но сеанс все еще не работает. - person thenoob; 02.01.2013
comment
вам нужно будет предоставить более подробную информацию, если вам нужна помощь (например, трассировка стека, сообщения об ошибках) - person Jesse Chen; 02.01.2013
comment
хэш ключа загружен правильно, но сеанс по-прежнему не открывается ... при входе в facebook он сначала запрашивает мое разрешение через приложение, а после того, как я принимаю всплывающее окно, появляется сообщение com.facebook.facebookexception: сеанс предоставлен запрос в неоткрытом состоянии - person thenoob; 03.01.2013
comment
да, версия этого кода присутствует ... проблема в том, что даже примеры приложений, указанные в SDk facebook 3.0, не работают и дают указанную выше ошибку. - person thenoob; 04.01.2013
comment
Я бы попробовал удалить приложение из ваших авторизованных приложений в настройках FB, а затем повторно авторизовать приложение. Кроме того, похоже, что в вашем приложении есть проблема с конфигурацией, потому что я не слышал сообщений о примерах приложений, имеющих эту проблему, и я также не могу воспроизвести. - person Jesse Chen; 04.01.2013
comment
Я также получаю ту же проблему, что и выше, как решить, пожалуйста, помогите? - person Nilesh Verma; 05.02.2013