0

在我的Android應用程序中,我將Facebook功能與「SSO」功能集成在一起。我的應用會顯示以下異常:Android Facebook SSO不起作用

snap from mobile

我創建 「密鑰散列」 使用下面的命令:

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 

,並放置關鍵字hash中的Facebook應用程序的細節: Facebook app creating page

我做了以下工作:

  1. 已下載facebook庫3.0.2

  2. 我直接從eclipse運行應用程序到手機。

  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你的應用程序包。