2017-03-08 252 views
0

我的Android應用程序中有一個Facebook登錄按鈕。我可以使用該按鈕登錄。按鈕只有一次我可以使用Facebook登錄按鈕登錄。我沒有成功登錄後第二次登錄。這是我得到的登錄響應Facebook登錄顯示錯誤

Facebook ErrorInvalid key hash。密鑰散列HG2kYV1on + 6yY1J7stl4KGrNsPA =與任何存儲的密鑰散列不匹配。在https://developers.facebook.com/apps/596405140754842/

配置您的應用程序鍵哈希但我複製散列密鑰存儲在keyhashes我的Facebook頁面devolopers後登錄。當我在另一個電話上安裝這個應用程序時,出現了同樣的問題。我通過將我的Facebook開發者頁面中存儲的散列鍵複製到無效的散列鍵來解決此問題。我也在沒有Facebook應用程序的手機上安裝我的應用程序在這種情況下,新的彈出窗口會詢問電子郵件和Facebook的密碼。我可以登錄和註銷這些手機

任意次數,但我需要的Facebook登錄與Facebook應用程序的手機工作不應對哈希鍵每一個電話

+2

可能重複的[Facebook的Android應用程序錯誤:無效的密鑰哈希](http://stackoverflow.com/questions/30934225/facebook-android-app-error-invalid-key-hash) –

回答

1

創建兩個keyHashes使用

  1. 一用下面的代碼

    $ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64 
    
  2. 命令提示
    private String getAppKeyHash() { 
        try { 
        PackageInfo info = getPackageManager().getPackageInfo(
          getPackageName(), PackageManager.GET_SIGNATURES); 
        for (Signature signature : info.signatures) { 
         MessageDigest md; 
    
         md = MessageDigest.getInstance("SHA"); 
         md.update(signature.toByteArray()); 
         String something = new String(Base64.encode(md.digest(), 0)); 
         return something; 
    
        } 
    } catch (Exception e) { 
        Log.e("exception", e.toString()); 
    } 
    return null; 
    

    }

添加無論是在Facebook開發應用的關鍵Hases。

這將工作。