我正在構建一個應用程序,該應用程序將支持Facebook。我已經從原始的Git回購站下載了Facebook API和他們的樣本,稱爲「Hackbook」。問題出在登錄 - 如果原來的FB應用程序沒有安裝在手機上,登錄正在通過自定義對話框,一切正常,但如果安裝了FB應用程序,Hackbook會自動重定向到原來的FB應用程序,然後什麼也沒有發生。無法登錄。 我已經在五種不同的手機上測試過,並且總是出現同樣的問題。Facebook API登錄失敗,在手機上安裝FB應用程序
回答
我有類似的問題。在我的情況下,我沒有使用我的簽名密鑰創建散列密鑰。我剛剛使用debug.keystore默認簽名密鑰創建了一個散列密鑰。
只要我使用我的應用程序版本簽名密鑰創建了一個哈希鍵,就可以解決這個問題。如果您尚未完成此操作,請使用您的簽名密鑰(用於在市場上上傳)創建一個新的哈希密鑰,並將其添加到您應用的Facebook控制面板。
希望這會有所幫助。
我已經辛苦了兩天&得到最後的解決方案,這是獲得哈希鍵WRONG方式 -
keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* | [openssl_bin_directory]\openssl sha1 -binary | [openssl_bin_directory]\openssl base64
的正道是鍵入以下3行,一個在以cmd爲單位的時間。在第一行之後,您將被要求插入密鑰庫密碼。
keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* > [openssl_bin_directory]\debug.txt
[openssl_bin_directory]\openssl sha1 -binary [openssl_bin_directory]\debug.txt > [openssl_bin_directory]\debug_sha.txt
[openssl_bin_directory]\openssl base64 -in [openssl_bin_directory]\debug_sha.txt > [openssl_bin_directory]\debug_base64.txt
如果你想知道的細節,在這裏描述的RIGHT方式 -
或這裏
獲取您使用此功能哈希鍵(debug和release apk),並將其放入developer.facebook.com/a的應用程序中PPS
private void calculateHashKey(String yourPackageName) {
try {
PackageInfo info = getPackageManager().getPackageInfo(
yourPackageName,
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) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
這幫助了我很多..希望這將幫助你太..
我已經修復了這個問題。使用keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
獲得密鑰哈希後,我已成功首次在發佈模式中登錄... 然後第二次,我得到了常見錯誤 您的密鑰"*********real*key************"
與您的應用程序設置中指定的允許密鑰不匹配。
只需使用Facebook提供的"*********real*key************"
錯誤消息,我現在在發佈模式下成功登錄。 因此,請確保輸入此密鑰時使用完全相同的密鑰。字母I,small(L) i.e (l)
會讓你陷入困境。我做了兩個鍵,第一個鍵我用small(L) i.e (l)
,第二個鍵我用了I.並將這些鍵放在開發人員的應用程序中。
它現在正在工作....
這是我的情況確切的問題..唯一的解決方案工作!和關於小'L'的部分是正確的,還有大'我'(這可能看起來像一些字體中的小'L'.. –
在我的情況下,問題是,即使在生成正確的密鑰後,當facebook應用程序安裝在設備上時,用戶登錄被取消。
我在登錄前添加了以下行,它工作的很好。
LoginManager.getInstance().logOut();
- 1. Facebook登錄失敗,FB應用程序安裝
- 2. Facebook登錄失敗,並安裝了Facebook應用程序
- 3. Facebook登錄失敗,Android應用程序
- 4. 安裝FB應用程序時Android Facebook示例應用程序無法登錄
- 5. Facebook的統一SDK在Android上登錄時,FB應用程序安裝
- 6. 未安裝Facebook應用程序時,facebook登錄按鈕點擊失敗
- 7. 安卓Facebook登錄失敗
- 8. 爲什麼如果facebook應用程序安裝在手機上,Facebook登錄對話框不會打開
- 9. Facebook的登錄 - 如果用戶帳戶存在(和應用程序未安裝)登錄失敗
- 10. 應用程序安裝失敗 - 安裝應用程序viaOTA
- 11. 掃描Fb QRCode登錄應用程序
- 12. Facebook上登錄的反應本機應用程序在Android上
- 13. Facebook登錄集成在Android應用程序中失敗
- 14. Android應用程序與Facebook登錄未與Facebook應用程序安裝
- 15. 當Facebook應用程序安裝時Facebook登錄中斷
- 16. 已安裝Facebook應用程序的Facebook SDK iOS登錄
- 17. android如何在手機中安裝facebook應用程序
- 18. Android,Facebook SDK和單一登錄:我的應用程序因「invalid_key」或Facebook應用程序失敗而失敗
- 19. FB SDK錯誤:登錄失敗(react-native)
- 20. FaceBook API,登錄應用程序內
- 21. Facebook登錄失敗
- 22. Facebook登錄失敗
- 23. Facebook登錄失敗
- 24. 在Ubuntu安裝的OpenManage - 登錄失敗
- 25. FB應用程序中的Facebook API調用需要登錄(只在IE中)
- 26. Facebook:強制用戶使用FBML登錄/安裝應用程序
- 27. 在Rails 2.3.12和HTTPS失敗中安裝機架應用程序
- 28. FB iOS登錄 - 「應用程序必須在安裝時詢問basic_info權限。」
- 29. Facebook手動登錄流程,如果已安裝,則在應用程序中打開登錄對話框
- 30. MVC Facebook應用程序獲取登錄失敗錯誤
我在控制面板中添加了哈希鍵,但問題仍然存在。我還需要在某處添加散列鍵嗎? – virusss8
@ virusss8:你不需要在你的應用程序中添加hashkey。按照這一步並告訴我結果。在facebook-sdk中打開Util類文件,並將'private static boolean ENABLE_LOG = false'更改爲'true'。現在,將手機連接到開發PC並運行使用簽名的apk創建的應用程序並登錄。保持DDMS窗口打開並查看是否生成錯誤。 –
D/Facebook授權(25124):登錄失敗:invalid_key:Android密鑰不匹配。您的密鑰「********* real * key ************」與您的應用程序設置中指定的允許密鑰不匹配。請在http://www.facebook.com/developers 檢查您的應用程序設置,但我從未在任何地方設置過該密鑰。那個關鍵是什麼? – virusss8