2015-05-02 128 views
1

我正在寫我的朋友的android應用程序。在應用程序中,我們使用Facebook SDK和登錄按鈕。我們已經使用類似於facebook在facebook中的應用配置文件中建議的Code的代碼來設置散列密鑰。我們還在設置 - > Key Hashes下編寫了密鑰。當測試真實設備的登錄,如果本地的Facebook應用程序在使用我的朋友解釋我們的應用程序可以登錄,但如果我用我的帳戶我的錯誤:Facebook SDK無效哈希鍵

無效的密鑰散列。密鑰哈希值XXXXXXXXX ....不匹配任何存儲的密鑰哈希值。配置您的應用程序密鑰哈希在......

我們檢查了應用程序配置文件,我的帳戶也寫在那裏與管理員權限。

回答

1

運行這段代碼在你的應用程序,你將有散列鍵:

try 
{ 
    //paste Your package name at the first parameter 
    PackageInfo info = getPackageManager().getPackageInfo("PUT_YOUR_PACKAGE_NAME_HERE", 
      PackageManager.GET_SIGNATURES); 
    for (android.content.pm.Signature signature : info.signatures) 
    { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     String sign = Base64.encodeToString(md.digest(), Base64.DEFAULT); 
     Log.e("MY KEY HASH:", sign); 
     Toast.makeText(getApplicationContext(), sign, Toast.LENGTH_LONG).show(); 
    } 
} 
catch (PackageManager.NameNotFoundException e) 
{ 
} 
catch (NoSuchAlgorithmException e) 
{ 
} 

對於一個完整的Facebook登錄例子see this answer

由於您是從其他設備進行日誌記錄,因此應在facebook console中啓用您的應用。檢查this answer看看如何。

+0

但這是我使用的代碼,檢查我寫的帖子中的鏈接。 – Epsilon

+0

你確定你已經編輯了你的Facebook開發者控制檯並保存了你的設置嗎? –

+0

是的,因爲該應用程序如果我嘗試與我的朋友facebook accout,我的意思是在我的手機上,如果我用我的朋友帳戶的Facebook本機應用程序 – Epsilon

0

請確保您使用正確的密碼,因爲keytool顯然不會拒絕不正確的密碼,並會生成不正確的密碼。默認的密鑰庫密碼是android