04-24 01:14:08.605: I/System.out(31395): invalid_key:Android key mismatch.
Your key "abcdefgHIJKLMN+OPqrstuvwzyz" does not match the allowed keys specified in your
application settings. Check your application settings at
http://www.facebook.com/developers
1) Open command line go to - > java Keytool..... for me C:\Program Files\Java\JDK1.7\bin
2) Download OpenSSL from google
3) paste this with changing your paths -
keytool -exportcert -alias androiddebugkey -keystore C:\Users\pravin\.android\debug.keystore | "H:\OpenSSL\bin\openssl" sha1 -binary | "H:\OpenSSL\bin\openssl" base64
.................... give proper debug.keystore path and openSSL path ..
4) Finley it may be ask u password .. so give password -> android ...
5) you will get 28 characters that will be your has key
C:\Program Files\Java\jdk1.6.0_45\bin>keytool -exportcert -alias here your alias name -keystore "G:\yourkeystorename.keystore" |"G:\ssl\bin\openssl" sha1 -binary | "G:\ssl\bin\openssl" base64
28 回答
1.1运行应用程序,这将为您的应用程序生成一个哈希键 .
现在,打开log cat并使用“KeyHash”进行搜索并复制哈希键 .
您生成哈希键,您可以删除此功能 .
以下是步骤 -
从Google code下载openssl(如果你有64位机器,你必须download openssl-0.9.8e X64不是最新版本)
解压缩它 . 在C:/中创建一个文件夹-OpenSSL,并在此复制提取的代码 .
检测debug.keystore文件路径 . 如果你没找到,那么在C:/中搜索并在下一步中使用命令中的Path .
检测您的keytool.exe路径并转到该dir / in命令提示符并在1行中运行此命令 -
它会要求输入密码,放android
就是这样 . 你会得到一个密钥哈希
欲了解更多信息visit here
您可以在任何活动中使用此代码 . 它会将logkey记录在logcat中,这是调试密钥 . 这很简单,比使用SSL更令人宽慰 .
您可以在知道密钥后删除代码;)
我为Windows和Mac OS X创建了一个小工具 . 只需输入密钥存储文件,然后获取哈希密钥 .
如果需要默认的debug.keystore文件,请使用默认别名和密码 . 否则,请使用您自己的密钥库文件和值 .
检查一下,download the Windows version或download the Mac OS X version(Dev-Host有时可能会关闭......所以如果链接坏了,PM我和我会解决它) .
我希望能帮到你们......
Dec 31, 2014 - EDIT: 将主机更改为AFH . 如果链接断开,请告诉我
Nov 21, 2013 - EDIT:
根据用户的要求,我添加了默认密钥库位置和 DONATE button. Feel free to use it ,如果我帮助过你的话 . :)
目前Facebook's Android Tutorial中的说明在 Windows 下无效 . 他们的示例显示了如何将keytool输出传递给openssl,但如果在Windows下尝试此操作,则输出由于某种原因无效 . 我发现我必须使用中间文件才能使其正常工作 . 以下是适合我的步骤:
首先从Google下载openssl for Windows .
运行这些命令后,有效散列将存储在base64.txt文件中 . 将其复制并粘贴到Facebook上的应用设置中 .
1)创建一个密钥来签署您的应用程序,并记住别名 .
2)安装OpenSSL .
3)将OpenSSL的bin文件夹放在路径中 .
4)按照FB-Android-SDK page上"Setup Single Sign-On"下提到的步骤操作,生成哈希密钥 . 确保您输入正确的别名和密钥库文件名 .
5)在Facebok上创建一个应用程序,然后在“移动设备”选项卡下输入此哈希密钥 .
这是the official page of Facebook给出的:
让我把这个命令分解成片段 .
寻找
"keytool.exe"
. 您可以在C:驱动器上搜索它 . 您可以在"java jdk"
或"java jre"
中找到它 . 如果您已安装多个版本,请选择任何版本 .打开CMD提示并转到上面找到
"keytool.exe"
的目录 .剪辑“exe`”并粘贴Facebook页面上提供的上述命令 .
输入此信息时会出现错误,因为输入输出命令中无法识别OpenSSL . 解决方案:从OpenSSL下载"Openssl"(如果您有64位计算机,则必须download openssl-0.9.8e X64) . 将其解压缩并保存在任何地方......我将其保存在
OpenSSl
文件夹中的C:驱动器上在管道后面的两个地方用“|”替换上面命令中的openssl,其中您在OpenSSL中遇到“C:\ OpenSSL \ bin \ openssl”错误 .
如果提示输入密码,请输入
android
.你会得到你的哈希键 . 有关更多步骤,请再次参阅Facebook页面 .
将此代码添加到您的活动的
onCreate
,它将在您的logCat中的 KeyHash 标记下打印哈希您可以为您的帐户添加多个hashkey,因此如果您在debug don't forget to run this again in release mode 中运行 .
要获取Android密钥哈希码,请按照下列步骤操作:
下载OpenSSL for Windows here
现在解压缩到C盘
打开CMD提示
类型
cd C:\Program Files\Java\jdk1.6.0_26\bin
然后只键入
keytool -export -alias myAlias -keystore C:\Users\
您的用户名\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
完成
我发现最简单的解决方案是:
打开Log Cat
使用Android SDK尝试访问Facebook
在日志中查找如下所示的行:
我已经通过这种方式为 Linux OS & Windows OS 做了:
Linux:
下载Openssl
打开终端
keytool -exportcert -alias **myaliasname** -keystore **/home/comp-1/Desktop/mykeystore.jks** | openssl sha1 -binary | openssl base64
请根据您的要求更改 Alias Name 和 Keystore with it's path .
终奌站将 ask 用于 Password 的Keystore . 你必须 provide password 为相同的 Keystore .
所以最后你会得到 Release Hashkey .
Windows:
Release Hashkey 的步骤:
下载Openssl(从here下载),我已经下载了 64 bit 操作系统,你可以找到更多here
仅将下载的zip文件解压缩到C:\驱动器
打开命令提示符
keytool -exportcert -alias **myaliasname** -keystore **"C:\Users\hiren.patel\Desktop\mykeystore.jks"** | "C:\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary | "C:\openssl-0.9.8e_X64\bin\openssl.exe" base64
请根据您的要求更改 Alias Name 和 Keystore with it's path .
注意:
**Please put your details where I have marked between ** .
终端将 ask 为 Password 的Keystore . 你必须 provide password 为相同的 Keystore .
所以最后你会得到 Release Hashkey .
Done
在这里下载openSSL for windows you can find 64bit and 32bit here
解压缩下载的文件
在C盘中创建文件夹名称openSSL
将所有提取的项目复制到openSSL文件夹中(bin,include,lib,openssl.cnf)
获取android调试密钥库,默认位置将是
您需要通过keytool创建一个密钥库,用于android的签名应用程序,如Android Site中描述的过程,然后您必须安装cygwin,然后您需要从google code安装openssl然后只需执行以下命令,您将获得哈希密钥android,然后将该哈希键放入您创建的Facebook应用程序中 . 然后你可以通过Android应用程序访问Facebook应用程序发布墙("publish_stream")可能是一个例子 .
$ keytool -exportcert -alias alias_name -keystore sample_keystore.keystore | openssl sha1 -binary | openssl base64
您需要从cygwin执行上述命令 .
下载openSSL -> 安装它 -> 它通常会安装在 C:\OpenSSL 中
然后打开cmd并输入
检查jdk版本转到 C:/program files/java/jdk_version
它会询问你的密码是android .
关于facebook developer site的官方文件:
这对我有用......
脚步:
For Linux
开放式终端:
For Debug Build
你会发现 debug.keystore 从".android"文件夹中复制它并粘贴在桌面上并运行上面的命令
For release Build
NOTE : Make sure In Both case it must ask for password. If it does not asks for password that means something is wrong in command.
For an Android application
此代码用于获取Android应用程序中用于Facebook集成的哈希键 . 我测试了所有设备并且它正在运行 . 只更改此代码的包名称:
要生成发布密钥的哈希值,请在Mac或Windows上运行以下命令,替换您的发布密钥别名和密钥库的路径 .
在Windows上,使用:
此命令应生成28个字符串 . 请记住 COPY 和 PASTE 此释放密钥哈希到您的Facebook App ID的Android设置中 .
图片:fbcdn-dragon-a.akamaihd.net/hphotos-ak-xpa1/t39.2178-6/851568_627654437290708_1803108402_n.png
参考:https://developers.facebook.com/docs/android/getting-started#release-key-hash和http://note.taable.com
就_1193387_在类似问题上我发现这对我有用:
将想要了解哈希的
apkname.apk
文件复制到'Java \ jdk1.7.0_79 \ bin'文件夹运行此命令
keytool -list -printcert -jarfile apkname.apk
复制
SHA1
值并使用此site进行转换使用转换后的Keyhash值(例如zaHqo1xcaPv6CmvlWnJk3SaNRIQ =)
最简单的解决方案:
不要添加哈希键,实现其他所有功能
按下facebook登录时,您将收到错误消息说"Invalid key hash. The key hash " xxx " does not match any stored key. ..."
打开facebook app仪表板并添加哈希"xxx="("xxx"哈希来自错误"="标志)
最好的方法是使用以下代码:
但我对于为Facebook应用程序生成HashKey没有简单的工具这一事实感到非常沮丧 . 每次我必须使用Openssl和Keytool或使用代码从签名中获取哈希值...
所以我写了一个简单的KeyGenTool,它将为你工作:-> KeyGenTool on Google Play <-
请享用 :)
我做了一个小错误,应该记住 . 如果您使用的是密钥库,那么请提供别名,而不是androiddebugkey ...
我解决了我的问题 . 现在,如果我的设备中安装了Facebook,那么我的应用程序仍在获取Facebook登录集成的数据 . 只关心你的哈希键 .
请看下面 .
然后按Enter键 - 它将询问您密码,然后输入您的密钥库密码,而不是Android .
凉 .
首先,要在本地计算机上生成密钥哈希,请针对Android调试密钥库运行Java的keytool实用程序(应该在控制台的路径上) . 默认情况下,这是您家中的.android目录) .
在ubuntu上,它在我的电脑里徘徊
对于那些不知道如何编码的人来说,AivarsDa在Google Play上的关键生成工具是最简单的解决方案 . 只需从中获取哈希键并复制到Facebook应用程序设置 . 密钥工具上的共享使我的应用程序在我的手机上崩溃,所以我只需在记事本中手动输入它并将其复制到fb . 经过几天的挫折之后,终于过了这一步
在c盘和openssl文件夹中保持打开ssl后使用此命令 .
在kotlin中使用此打印键哈希