我完全不明白这个过程。我已经能够导航到Java SDK中包含keytool的文件夹。虽然我一直得到错误openssl不识别为内部或外部命令。问题是,即使我能让它工作,我该做什么,然后做什么?
当前回答
简单的方法
通过使用这个网站,您可以通过将SHA1密钥转换为Facebook的哈希密钥来获得哈希密钥。
其他回答
以下是你需要做的
从代码下载openSSl 提取它。在C:/目录下创建一个名为OpenSSL的文件夹,并将解压后的代码复制到这里。
检测调试。Keystore文件路径。如果你没有找到,那么在C:/中进行搜索,并在下一步中使用命令中的Path。
检测您的keytool.exe路径,并进入dir/ in命令提示符,并在一行中运行此命令
$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
它会要求输入密码,输入android 这是所有。你会得到一个key-hash
OpenSSL:如果你的操作系统没有预安装OpenSSL(例如Windows没有预安装),你就必须安装它。如何安装取决于您的操作系统(对于Windows,请查看coder_For_Life22提供的链接)。
最简单的方法是将openssl.exe二进制文件复制到您的keytool路径(如果您使用的是Windows)。如果不想这样做,则必须将其添加到PATH环境变量中。然后执行文档中提供的命令。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
注意-keystore后面的参数指向调试密钥库。这个位置也取决于您的操作系统。应位于下列地点之一:
Windows Vista或7 - C:\Users\.android\debug.keystore Windows XP - C:\Documents and Settings\.android\ debug.keystore OS X和Linux - ~/.android/debug.keystore
如果所有操作都正确,系统将提示您输入密码。这是用于调试证书的android。如果密码正确,控制台将输出一个散列(有些随机字符和数字)。
把它复制到android键哈希字段内的首选项你的应用程序在facebook上。要做到这一点,请访问developers.facebook.com/apps,选择你的应用程序,进入编辑设置,向下滚动。之后,等待几分钟,直到更改生效。
private fun generateKeyHash(): String? {try {
val info =packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
for (signature in info.signatures) {
val md: MessageDigest = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
return String(Base64.encode(md.digest(), 0))
}
} catch (e: Exception) {
Log.e("exception", e.toString())
}
return "key hash not found"
}
你可以用这个apk
1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want
Windows:
打开命令提示符并粘贴下面的命令
键盘出口,又名仙女座键盘 HOMEPATH % \调试机器人。keystore | openssl sha1 -binary | openssl base64
输入密码:android——>按Enter键 用你的开发者账号登录Facebook 去你的Facebook应用程序>设置>粘贴哈希键在“键哈希”选项>保存更改。 现在用Facebook登录/分享等测试你的android应用。
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 碎片中的onCreateOptionsMenu
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 如何测试Facebook本地连接
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数