2011-05-13 32 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

相关问题