0

В моем приложении для Android я интегрирую функцию Facebook с функцией «SSO». Мое приложение показывает следующее исключение:Android SSO не работает

snap from mobile

я создал "Key Hash" с помощью следующей команды:

c:\Program Files\Java\jdk1.7.0_07\bin>keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Fssd1\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64 

и помещается ключ хэша в facebook страницы приложения: Facebook app creating page

Я сделал следующее:

  1. Загружена библиотека facebook 3.0.2

  2. Я запускаю приложение непосредственно из затмения на мобильный.

  3. У меня есть все необходимые разрешения для входа в систему также «офлайн».

  4. Мое приложение работает в эмуляторе не в мобильном телефоне (приложение по умолчанию Facebook установлено на мобильном устройстве).

Я потратил много времени, чтобы выяснить причину, но не смог.

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

Есть ли проблема при создании ключевого хэша? если тогда, как создать в борьбе?

Почему мое приложение не работает с SSO?

Я ничего не пропустил/не понял в своем процессе?

Что-нибудь нужно добавить в файл AndroidManifest.xml? например, «SingleInstance».

, пожалуйста, помогите мне сделать работу с моим приложением с SSO.

Заранее благодарю !.

+0

Вы добавили ключевой хеш в консоли для разработчиков Facebook? –

+0

@murali_ma: Этот снимок экрана, который вы опубликовали, находится на консоли разработчика Facebook. ;-) [Это может помочь] (http://stackoverflow.com/a/14875153/450534) исправить ошибку. –

+0

да, но я предполагал, что некоторые думают иначе., У вас есть проблема? –

ответ

2

Создайте хэш-ключ, используя эту команду. Печать хэш-ключ для LogCat и скопировать вставить его в Facebook:

private void printHashKey() 
{ 
    try 
    { 
     PackageInfo info = getPackageManager().getPackageInfo("com.your.package", 
      PackageManager.GET_SIGNATURES); 
     for (Signature signature: info.signatures) 
     { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.d("YOUR HASH KEY:", 
       Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } 
    catch (NameNotFoundException e) 
    { 

    } 
    catch (NoSuchAlgorithmException e) 
    { 

    } 
} 

Обеспечить, чтобы заменить com.your.package в пакет приложения.