2016-07-23 101 views
0

我創建了一個應用程序,使用Facebook登錄。我已經將關鍵哈希添加到了Facebook開發者頁面,並且它在所有設備中運行良好。 現在我已經將應用上傳到谷歌播放,當我嘗試登錄時,它是關鍵哈希不匹配任何存儲的密鑰哈希。 我將密鑰散列複製到錯誤消息中並粘貼它。仍然 - 不起作用。 我試圖使用釋放密鑰存儲在cmd中生成密鑰哈希 - 沒有運氣。無效的鍵哈希 - 安卓Facebook的

有誰知道什麼是問題以及如何解決它?

在此先感謝!

回答

2

嘗試添加下面的代碼片段到你的應用程序,而它的同版本的證書籤名,比較你提交給Facebook的門戶網站之一的散列輸出:

PackageInfo info; 
try { 
    info = getPackageManager().getPackageInfo("com.package.name", PackageManager.GET_SIGNATURES); 
    for (Signature signature : info.signatures) { 
     MessageDigest md; 
     md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     String hash= new String(Base64.encode(md.digest(), 0)); 
     Log.e("hash", hash); 
    } 
} catch (NameNotFoundException e1) { 
    Log.e("name not found", e1.toString()); 
} catch (NoSuchAlgorithmException e) { 
    Log.e("no such an algorithm", e.toString()); 
} catch (Exception e) { 
    Log.e("exception", e.toString()); 
} 
+0

但是,這讓我對調試的關鍵散列。它已經在Facebook門戶中。它與錯誤消息中的密鑰不同。 – tamird14

+0

發佈你的應用程序與發行證書並運行該片段,它將顯示發行證書的散列 –

+0

如果我嘗試通過android studio運行應用程序,它使用調試密鑰庫(它從谷歌播放卸載我的應用程序並安裝一個新的一個)。如果我從谷歌播放運行應用程序,我會在哪裏看到日誌消息? – tamird14