2017-01-15 33 views
0

我想在我的Android應用程序使用Facebook的API登錄匹配任何存儲的密鑰哈希值。在按照教程進行操作後,我可以在點擊通過Facebook按鈕登錄後獲得確認屏幕。但是當我第二次運行我的應用程序時,我得到「Facebook密鑰哈希不匹配任何存儲的密鑰哈希」錯誤。Facebook的密鑰散列不會對第二次運行

我按照計算器上的其他職位,刪除了我的申請,並再次創造等,但是,第二輪我再次得到了同樣的錯誤。

Facebook key hash does not match any stored key hashes

你知道什麼可以是錯誤的,爲什麼我沒有在第一次運行得到,但我得到的第二次運行這個錯誤?

+0

調試密鑰生成?或釋放 – rafsanahmad007

+0

生成的調試密鑰 – cincin

+0

你是如何獲得散列密鑰的? – rafsanahmad007

回答

0

試試這個:

public void Get_hash_key() { 
     PackageInfo info; 
     try { 
      info = getPackageManager().getPackageInfo("your_package_name", 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)); 
       //String something = new String(Base64.encodeBytes(md.digest())); 
       Log.e("hash key", something); 
      } 
     } catch (PackageManager.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()); 
     } 
    } 

添加你的包名和onCreate調用此函數()你Mainactivity的

將打印在logcat的哈希鍵...

副本粘貼開發商面板上的按鍵,刪除其他鍵

+0

我試過,但在第二輪再次失敗,因爲在第二次運行它創建不同的hash code我認爲這是問題,因爲我前夕後才明白。 ry運行代碼更改,但在服務器上只有我註冊的代碼,因此它不匹配。那麼爲什麼我的哈希代碼總是改變? – cincin

0

創建一個有效的密鑰存儲到你的Android應用:

(Windows)中

keytool -genkey -v -keystore fisherbook.keystore -alias fisherbook -keyalg RSA -keysize 2048 -validity 10000 

實生成散列關鍵字:

(Windows)中

keytool -exportcert -alias <KEYSTORE_ALIAS> -keystore <COMPLETE_KEYSTORE_PATH> | openssl sha1 -binary | openssl base64 

還是看看Facebook的錯誤:「無效的密鑰散列。該密鑰不匹配任何存儲哈希值的......」 有你的Facebook散列關鍵字!

然後把你的哈希的app /設定(Android)在Facebook的開發者網站。

相關問題