Android Facebook SSO无法正常工作

时间:2013-07-31 11:19:14

标签: android facebook single-sign-on facebook-android-sdk android-facebook

在我的Android应用程序中,我将Facebook功能与“SSO”功能集成在一起。我的应用程序显示以下异常:

snap from mobile

我使用以下命令创建了“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 app creating page

我做了以下事情:

  1. 下载了facebook library 3.0.2

  2. 我直接从eclipse到手机运行应用程序。

  3. 我还拥有登录“离线”所需的所有权限。

  4. 我的应用程序可以在模拟器中运行而不是在移动设备上(Facebook默认应用程序安装在移动设备中)。

  5. 我花了很多时间找出原因但不能。

    我的疑问是为什么facebook会显示与上面使用的命令生成的密钥哈希不同的密钥。

    创建密钥哈希有什么问题吗?如果那么如何以正确的方式创造?

    为什么我的应用无法使用SSO?

    我的过程中是否遗漏/错误?

    AndroidManifest.xml文件中是否需要添加任何内容?例如“SingleInstance”。

    请帮我用SSO开展我的应用程序。

    提前致谢!

1 个答案:

答案 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替换为您的应用程序包。