0

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

snap from mobile

我创建 “密钥散列” 使用下面的命令:

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 

,并放置关键字hash中的Facebook应用程序的细节: Facebook app creating page

我做了以下工作:

  1. 已下载facebook库3.0.2

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

  3. 我有所有必要的权限登录也“离线”。

  4. 我的应用程序在模拟器中工作不在手机(Facebook默认应用程序安装在手机中)。

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

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

创建密钥散列有问题吗?如果那么如何以赖特的方式创造?

为什么我的应用程序不能使用SSO?

在我的过程中是否有任何错过/错误?

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

请协助我使用SSO工作我的应用程序。

在此先感谢!

+0

您是否在Facebook开发人员控制台中添加了密钥哈希值? –

+0

@murali_ma:您发布的截图是Facebook开发人员控制台。 ;-) [这可以帮助](http://stackoverflow.com/a/14875153/450534)修复错误。 –

+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你的应用程序包。