2011-05-13 33 views
31

我正在使用Facebook sdk登錄到我的應用程序。 該應用程序在HTC設備上運行良好。 如果沒有安裝Facebook應用程序,該應用程序在三星設備上也可以正常工作。使用Facebook sdk生成應用程序的哈希鍵

但是,如果手機已經有Facebook應用程序,然後用戶安裝我的應用程序,用戶從未登錄。 從我所知道的,我認爲這可能是一個單一登錄問題,我認爲這與生成正確的應用程序哈希鍵以及在用於登錄到移動應用程序的Facebook應用程序中使用哈希鍵有點相關。

請指導我如何創建散列鍵。我正在運行Ubuntu 10.4。

當我運行在終端以下命令: -

keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64 

,我從來沒有提示輸入密碼,雖然我給出的哈希鍵。

+0

[這裏] [1]你可以得到你的答案,它也幫助了我。 http://stackoverflow.com/a/12405323/2331725 [1]:http://stackoverflow.com/a/12405323/2331725 – 2013-07-02 09:31:51

+0

爲了產生hashkey [簡單的方法是在這裏] [1] [1]:http://stackoverflow.com/questions/5306009/facebook-android-generate-key-hash/12405323#12405323 – karthik 2013-11-14 20:00:20

+0

我已經生成的密鑰哈希,但不知道把鑰匙放在哪裏,你能指導我嗎?我在Ubuntu上運行android studio。 – Apurva 2015-10-08 18:31:57

回答

61

試試這個:

 
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

我希望你能得到它。我剛剛檢查了它,並得到了提示輸入密碼的提示。

+0

我沒有使用調試密鑰庫來感知應用程序。我創建了一個新的密鑰庫 – abhishek 2011-05-13 09:31:26

+0

在我的情況下,它甚至沒有要求androiddebugkeystore的密碼......可能是錯誤的那個 – abhishek 2011-05-13 09:39:15

+0

你確實輸入了那個密碼嗎?檢查空間和所有?在debugkeystore – Lavanya 2011-05-13 10:02:59

3

只要給命令: -

keytool -exportcert -alias androiddebugkey -keyst 
ore debug.keystore 

,並給予按鍵密碼或Android或進入

在這裏你必須進入的目錄結構,直到「.android」然後運行這個commnad。通常,路徑是C:\Users\User-name\.android>

+0

我已經生成了密鑰哈希,但不知道把鑰匙放在哪裏,你會指導我嗎?我在Ubuntu上運行android studio。 – Apurva 2015-10-08 18:32:29

47

您可以使用此代碼塊生成散列鍵。把這個代碼塊放在你的onCreate()方法中。

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

    } catch (NoSuchAlgorithmException e) { 

    } 
+0

沒有其他工作對我來說,這是第一次嘗試。 – a54studio 2013-03-05 03:51:17

+0

爲我完美工作...也做了下面的命令得到相同的結果: keytool -exportcert -alias androiddebugkey -keystore〜/ .android/debug.keystore | openssl sha1 -binary | openssl base64 – Vinay 2013-10-17 13:17:44

+2

這就是它。請記住用您的軟件包名稱更改「您的軟件包名稱」;) – OWADVL 2014-03-24 20:58:01

2

檢查您的環境中的三個部分。

  1. 哪裏是「debug.keystore」

    找到/ -name "debug.keystore"

    ,如果你不能找到它,請檢查Eclipse或ADT。

  2. 什麼是別名

    keytool -list -v -keystore "PATH_TO_DEBUG_KEYSTORE"

  3. 檢查是否安裝OpenSSL的

    openssl

如果一切準備就緒,就應該提示密碼

+0

我已經生成了密鑰哈希,但不知道該把鑰匙放在哪裏,你能指導我嗎?我在Ubuntu上運行android studio。 – Apurva 2015-10-08 18:32:41

+0

輸入密碼後發佈apk顯示中文語言請幫我 – Harsha 2016-09-29 07:18:36

0
C:\openssl\bin>keytool -exportcert -alias aliasName -keystore "C:\Users\s\.android\debu 
g.keystore" | "C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" b 
ase64 
Enter keystore password: android 
GEYtOJobR4NzuxX4iOl/yR6sla4= 
2

如果它不提示您輸入密碼,然後先打開你的終端類型:

sudo apt install openjdk-8-jre-headless 

然後按照常規方式,只需鍵入:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 

對於密碼的說:android 您完成所有的工作。

此答案僅用於調試目的,用於發佈目的使用您的.jks文件生成散列鍵。

+0

工作就像一個魅力! – Shruti 2017-05-08 09:38:07

相關問題