我正在开发一个Android应用程序,我想在其中集成一个Facebook 发布功能。我下载了Facebook-Android SDK,然后 readme。Md(文本文件)在那里,其中提到要生成 Android的键散列。我如何生成它?
当前回答
下载openSSL ->安装它->通常会安装在C:\ openSSL
然后打开CMD并键入
cd../../Program Files (Enter)
java (Enter)
dir (Enter)
cd jdk1.6.0_17 (varies with jdk versions) (Enter)
查看jdk版本到C:/program files/java/jdk_version
cd bin (enter)
keytool -exportcert -alias androiddebugkey -keystore C:Users\Shalini\.android\debug.keystore | "C:\OpenSSL\bin\openssl sha1 -binary | "C:\OpenSSL\bin\openssl base64 (Enter)
它会问你密码是android。
其他回答
这是Xamarin的版本
private void printKeyHash()
{
try
{
PackageInfo info = PackageManager.GetPackageInfo(PackageName, PackageInfoFlags.Signatures);
foreach (var signature in info.Signatures)
{
MessageDigest md = MessageDigest.GetInstance("SHA1");
md.Update(signature.ToByteArray());
var hash = Base64.EncodeToString(md.Digest(), Base64Flags.Default);
Log.Debug("KeyHash:", hash);
}
}
catch (PackageManager.NameNotFoundException e)
{
}
catch (NoSuchAlgorithmException e)
{
}
}
你需要通过keytool为android签名应用程序创建一个密钥库,就像android站点中描述的过程一样,然后你必须安装cygwin,然后你需要从谷歌代码安装openssl,然后只需执行以下命令,你就会得到android的哈希密钥,然后把哈希密钥放入你创建的facebook应用程序。然后你可以通过Android应用程序访问facebook应用程序的张贴墙(“publish_stream”)可以是一个例子。
$ keytool -exportcert -alias alias_name -keystore sample_keystore。Keystore | openssl sha1 -binary | openssl base64 . Keystore | openssl sha1 -binary
您需要从cygwin执行上面的命令。
下载openSSL ->安装它->通常会安装在C:\ openSSL
然后打开CMD并键入
cd../../Program Files (Enter)
java (Enter)
dir (Enter)
cd jdk1.6.0_17 (varies with jdk versions) (Enter)
查看jdk版本到C:/program files/java/jdk_version
cd bin (enter)
keytool -exportcert -alias androiddebugkey -keystore C:Users\Shalini\.android\debug.keystore | "C:\OpenSSL\bin\openssl sha1 -binary | "C:\OpenSSL\bin\openssl base64 (Enter)
它会问你密码是android。
目前Facebook Android教程中的说明在Windows下并不适用。他们的例子展示了如何将keytool输出输出到openssl,但是如果你在Windows下尝试这样做,由于某些原因输出是无效的。我发现我必须使用中间文件才能让它正常工作。以下是对我有用的步骤:
首先从谷歌下载openssl for Windows。
C:\Users\Me>keytool -exportcert -alias my_key -keystore my.keystore -storepass PASSWORD > mycert.bin
C:\Users\Me>openssl sha1 -binary mycert.bin > sha1.bin
C:\Users\Me>openssl base64 -in sha1.bin -out base64.txt
运行这些命令后,有效的散列存储在文件base64.txt中。复制粘贴到你的Facebook应用设置中。
在一个类似的问题上,我发现这对我很有效:
将你想知道散列值的apkname.apk文件复制到“Java\jdk1.7.0_79\bin”文件夹中 执行keytool -list -printcert -jarfile apkname.apk 复制SHA1值并使用此站点进行转换 使用转换后的Keyhash值(例如:zaHqo1xcaPv6CmvlWnJk3SaNRIQ=)
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 如何测试Facebook本地连接
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- 如何在iOS中使用Swift编程segue
- 如何在Windows命令提示符下运行.sh ?