2010-12-20 52 views
7

可能重複:
Login failed invalid key error with Facebook SDKFacebook的Android SDK中INVALID_KEY

我使用的一個示例應用程序在這裏ibm.com/developerworks/library/x-androidfacebookapi/ 測試的Facebook的Android SDK, 我在這個示例應用程序中給出了我的APP ID。 我已經完成了所有設置和先決條件。 我已經用我的密鑰庫和生成的哈希鍵簽名應用程序 我提交了哈希鍵到Facebook應用程序設置頁面, 我在我的設備上安裝了Facebook應用程序。 但畢竟做的應用程序給Facebook的錯誤invalid_key。 請在這方面幫助我, 謝謝。

回答

10

無效的密鑰可能是有很多原因 -

  1. 請確保您有安裝的keytool和OpenSSL。
  2. 確保您在命令中提供了正確的密鑰存儲文件。
  3. 確保你給出了正確的別名。
  4. 確保您將生成的哈希鍵正確地複製到Facebook應用程序中。

當我最初得到無效密鑰時,這是因爲我給了錯誤的別名。奇怪的是,Keytool和OpenSSl不會提到這個別名是錯誤的。如果你給命令生成哈希密鑰,並且不要求你輸入密碼,那麼你可能會做錯了。

+0

嗨,我創建了一個新的密鑰和生成的密鑰哈希值相同,我提交了哈希Facebook和與該密鑰簽名的應用程序,但它不工作。相同的invalid_key錯誤即將到來。在我們輸入哈希鍵的Facebook應用程序設置頁面中,應該是RADIO按鈕HTML5/WEB或NATIVE的值? – om252345 2010-12-21 12:00:54

+0

它應該是HTML5/Mobile Web。原生應用程序意味着它內置了電話。您可以嘗試使用Eclipse調試密鑰庫,並查看它是否可以使用它? – 2010-12-21 15:11:34

+0

嗨阿比納夫,是的,我試着用調試密鑰生成散列,這也給Facebook的錯誤,一個奇怪的現象是,在設備上,當我更新的Facebook應用程序的舊安裝的應用程序與SSO工作,但具有相同的密鑰簽署新安裝不同的應用程序是給了Facebook的錯誤..... – om252345 2010-12-22 05:06:27

0

這不是邏輯bu「同樣」keytool命令在Windows和Linux中給出了不同的結果。從Linux獲得的散列鍵從Windows工作,失敗。你可以試試!

從這裏安裝在Windows OpenSSL的:http://code.google.com/p/openssl-for-windows/

+0

事件Cygwin不能解決此問題。 – 2012-08-31 17:46:23

+0

最好的辦法是使用代碼生成密鑰哈希:按照此鏈接代碼https://developers.facebook.com/docs/android/getting-started – 2015-07-08 09:15:12

0

我有同樣的問題,終於讓我找到了解決辦法:使用Cygwin爲Windows用戶。 Windows的結果與linux/iOS不同。 所以安裝Cygwin,這很容易,如果你想使用NDK,你也需要cygwin。 運行上面列出的命令複製輸出,它將工作。

+0

k將嘗試這個... – om252345 2011-01-21 14:00:53

+0

我用Cygwin的,同樣的問題! – 2012-08-31 17:46:01

3

有幾件事情我跑進之前,我得到這個工作:

1)生成在Linux中的哈希值。 Windows(至少對我來說,64位)沒有生成正確的散列。下載Cygwin bash shell並從那裏執行。

2)在密鑰庫的文件路徑中,一切都應該是正斜槓。即使在C:之前。因此,例如,C:/Users/YourName/.android/debug.keystore,NOT C:\ Users/YourName/.android/debug.keystore。

3)應該包含散列末尾的等號。也許這對某些人來說是顯而易見的,但我認爲我應該提及它。

它應該提示你輸入密碼。如果沒有,你做了一些不正確的事情。

+0

嗨,Cygwin的顯示同一個鍵Win 7的節目,它仍然是INVALID_KEY ... – om252345 2011-02-02 13:09:10

+0

@Seth我可以證實,我曾嘗試在Win8中(64位)你的腳步,仍然有同樣的問題。 – 2012-08-31 17:45:42

+0

@Seth「散列末尾的等號應該包含」是非常有用的評論 – David 2013-08-19 22:38:43

0

其實這是Facebook的SDK中的問題,如果你卸載com.facebook.katana,那麼你的應用程序將工作得很好。我沒有針對此問題的永久解決方案,但暫時會解決此問題

+0

現在有什麼永久的解決方案嗎? – 2014-08-11 07:34:09

+0

最新的3.0+ SDK已解決此問題。你應該再次檢查你生成的密鑰。 – Hasandroid 2014-08-11 22:17:40

0

今天,使用Cygwin無法獲得Windows EVEN的正確密鑰。您必須在MacOS或Linux下執行此操作。這是一個問題。希望他們很快得到解決。

+0

這是不正確的。 – Bruiser 2011-06-21 18:11:57

0

我遇到了同樣的問題,我想很多其他人都遇到了和我一樣的事情。 Windows上的密鑰存儲區默認在用戶目錄下,例如, C:\ Users \ User Name.android \

因爲我輸入了完整路徑,並且在以用戶名命名的文件夾中有一個空格(「」),所以失敗了。如果您在路徑中加上引號,則可能會有效,並且系統會提示您輸入密鑰庫密碼。

例如 keytool -exportcert -alias androiddebugkey -keystore「C:\ Users \ User Name.android」| openssl sha1 -binary | OpenSSL的BASE64

0

我使用的是Windows 7和解決問題使用:

keytool -export -alias androiddebugkey -keystore "[PATH]\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl enc -a -e 

您可以下載OpenSSL for Windows

0

我去修正這個:

如果添加授權行的代碼

Facebook.FORCE_DIALOG_AUTH 

mFacebook.authorize(MundialRugby2011Activity.this, 
new String[] {"publish_stream", "read_stream",        
    "offline_access"},Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener()); 
1

一直與這一切日常問題,我用命令提示符生成密鑰後,我在窗口定義OpenSSL和密鑰工具的路徑,它的工作系統設置。

我在eclipse中設置了Facebook應用程序,並且它在AVD上工作正常,但是同樣的程序導致安裝在我的連接點上的Facebook錯誤無效密鑰。

我得出結論,設備有自己的密鑰,不能使用密鑰庫中的密鑰庫。

2

我也有這個問題,並沒有真正找到如何解決它,直到我發現這個

http://support.getsocialize.com/socialize/topics/facebook_auth_key_issue_adding_the_invalid_key_from_logcat_seems_to_fix_sso?from_gsfn=truethread

每個幫助主題都指出密鑰哈希沒有被正確填寫。多次檢查並多次使用keytool後,我知道我正確地填寫了它。上面的鏈接是關於這個問題的獲得滿意度的一個推論,並且在那裏提供的溶劑對我有效。只需將您在彈出窗口中看到的密鑰複製到Facebook開發者頁面上的哈希框中即可。它可以與你從keytool獲得的散列一起添加。

我解決這個問題時發現了一些事情。 - 我一直使用的完整路徑keytool命令 - 進入keytool命令時,請確保它要求輸入密碼 - 找出如果你正確地去keytool命令輸入的密碼先用東西提供它,你知道不是,你的密碼會導致它也會產生一個散列。如果密碼不正確,它總會給出相同的散列。因此要檢查您是否輸入了正確的密碼,請將其與密碼錯誤的散列值進行比較。 - 只有當Facebook的應用程序也是該手機,我相信意味着錯誤不是認證本身上會出現此錯誤,這讓我搜索我的代碼中的錯誤了幾個小時,而什麼都沒有(至少在身份驗證部分:p) - 我很幸運擁有多個測試設備,這表明它不是代碼中的錯誤,而是sdk中或驗證階段其他部分中的錯誤。

我希望這個信息會幫助別人,運行到這個問題,並在一段時間救他解決它。

親切的問候湯姆

+0

這正是我的問題!我衝動地輸入我的調試密鑰庫的sudo密碼,它沒有抱怨,並給我一個哈希輸出。只要我爲調試密鑰庫輸入密碼,keytool就會輸出與FB預期相同的簽名! WEIRD WEIRD! – swooby 2015-02-17 19:33:38