在我的Android应用程序中,我将Facebook功能与“SSO”功能集成在一起。我的应用程序显示以下异常:
我使用以下命令创建了“Key Hash”:
c:\Program Files\Java\jdk1.7.0_07\bin>keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Fssd1\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
并将密钥哈希放在Facebook应用程序详细信息中:
我做了以下事情:
下载了facebook library 3.0.2
我直接从eclipse到手机运行应用程序。
我还拥有登录“离线”所需的所有权限。
我的应用程序可以在模拟器中运行而不是在移动设备上(Facebook默认应用程序安装在移动设备中)。
我花了很多时间找出原因但不能。
我的疑问是为什么facebook会显示与上面使用的命令生成的密钥哈希不同的密钥。
创建密钥哈希有什么问题吗?如果那么如何以正确的方式创造?
为什么我的应用无法使用SSO?
我的过程中是否遗漏/错误?
AndroidManifest.xml文件中是否需要添加任何内容?例如“SingleInstance”。
请帮我用SSO开展我的应用程序。
提前致谢!
答案 0 :(得分:2)
使用此命令创建哈希密钥。将哈希键打印到LogCat并将其粘贴到Facebook:
private void printHashKey()
{
try
{
PackageInfo info = getPackageManager().getPackageInfo("com.your.package",
PackageManager.GET_SIGNATURES);
for (Signature signature: info.signatures)
{
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("YOUR HASH KEY:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
}
catch (NameNotFoundException e)
{
}
catch (NoSuchAlgorithmException e)
{
}
}
确保将com.your.package
替换为您的应用程序包。