2014-03-13 77 views
1

我想從Facebook SDK中獲取HelloFacebookSample的工作,但我遇到了一些問題。後期狀態更新提供了facebook對話框,看起來不錯,但是當我按下分享按鈕時,我收到一個錯誤,「(#404)密鑰哈希值XXX-XXXX與任何存儲的密鑰哈希值不匹配」。我想知道我在做什麼錯了。這是我所做的。HelloFacebookSample不工作,Facebook SDK更新狀態:Android

1)我做了keytool -exportcert -alias androiddebugkey -keystore「path」\ debug.keystore | openssl sha1 -binary | openssl base64

我從cmd運行了上述內容,並收到一個散列號。這看起來很有效,因爲FB文檔中提到的所有內容都發生了,這意味着我被提示輸入密碼,並且使用了「android」,之後我收到了一個數字。

2)我取出我的號碼,並在創建名爲「Example」的應用程序後將其輸入開發者平臺。我有我放的地方的截圖。

enter image description here

3)然後我回到了示例項目,並改變了應用程序要匹配的id是什麼在我的開發人員門戶(如上圖)。

之後,我覺得事情會很好。但我仍然收到這個錯誤。所以然後我試圖通過代碼片段獲得關鍵哈希。在我的onCreate我有以下內容:

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       PackageManager.GET_SIGNATURES); 

     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
     } catch (NameNotFoundException e) { 
      Log.d(TAG, "NameNotFoundException"); 
     } catch (NoSuchAlgorithmException e) { 
      Log.d(TAG, "NoSuchAlgorithmException"); 
     } 

返回什麼是「NameNotFoundException」,所以沒有關鍵。我如何得到這個工作,以及我在我的步驟中錯過了什麼?提前致謝。

+0

得到了解決方案?請分享 –

回答

7

你的代碼是好的,我也得到了的NameNotFoundException首次

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       PackageManager.GET_SIGNATURES); 

     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.e("KeyHash:", 
        Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } catch (NameNotFoundException e) { 
     Log.d("NameNotFoundException", "NameNotFoundException"); 
    } catch (NoSuchAlgorithmException e) { 
     Log.d("NameNotFoundException", "NoSuchAlgorithmException"); 
    } 

然後我在PackageInfo info = getPackageManager().getPackageInfo( "MY.PACKAGE.NAME.GOES.HERE", PackageManager.GET_SIGNATURES);

改變了包裝,讓您的項目的清單文件確定你的包名是com.facebook.samples.hellofacebook否則這不會工作。

+1

太棒了!我已經放棄了任何回答這個問題的人。你的回答是正確的。謝謝您的回答。 +1 – portfoliobuilder

+1

歡迎您 –

+0

嗯,好的哈希鑰匙 –

相關問題