2013-02-21 64 views
4

我想使用Facebook登錄原住民SessionState的是FB本地登錄

我下面http://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/ CLOSED_LOGIN_FAILED。我得到權限警告框,但是當我選擇ok時,我得到的SessionState爲CLOSED_LOGIN_FAILED。

我也重新檢查了App keyHash。是否有任何方法從代碼本身獲取KeyHash,我的意思是打印keyhash,它在比較時會檢查它。

我也經歷了很多其他線程,但沒有成功,我不知道我要去哪裏錯了。什麼是所有的可能性,以便我可能會收到這個錯誤。歡迎任何相關答案。

回答

11

而不是生成密鑰散列徹底命令行使用下面的代碼來獲得密鑰散列。你需要注意的問題是 1)在Facebook的設置 2)能夠在Facebook上的應用程序設置儀表盤的Facebook登錄的設置適當的包名 一些其他的事情

try { 
    PackageInfo info = getPackageManager().getPackageInfo(
      "com.example.com.tvishi.fb", 
      PackageManager.GET_SIGNATURES); 
    for (Signature signature : info.signatures) { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
} catch (NameNotFoundException e) { 

} catch (NoSuchAlgorithmException e) { 

} 
+0

經過多次嘗試,類似的帖子在這裏http://stackoverflow.com/questions/14486377/android-facebook-api-exception-remote-app-id-does-not-match-stored-id – daffycricket 2013-03-25 23:46:16

0

https://developers.facebook.com/apps/

你要上市所有你在那裏的鑰匙。如果你的密鑰散列沒有在那裏列出,那麼你將無法登錄,FB會拒絕你。

如果您再移動到另一臺計算機,則需要再次執行此操作。

1

我剛剛遇到了這個問題,並嘗試了上面提到的所有解決方案,其中沒有一個解決了問題。就我而言,我一直在我的測試設備手機上發現這個錯誤(htc my touch)。我注意到,當我嘗試通過手機上的瀏覽器登錄Facebook時,它一直給我提供證書錯誤!所以我終於明白,手機上的日期和時間不正確。修復後,CLOSED_LOGIN_FAILED錯誤消失。希望在未來幫助別人!