2015-05-02 82 views
1

我正在写我的朋友的android应用程序。在应用程序中,我们使用Facebook SDK和登录按钮。我们已经使用类似于facebook在facebook中的应用配置文件中建议的Code的代码来设置散列密钥。我们还在设置 - > Key Hashes下编写了密钥。当测试真实设备的登录,如果本地的Facebook应用程序在使用我的朋友解释我们的应用程序可以登录,但如果我用我的帐户我的错误:Facebook SDK无效哈希键

无效的密钥散列。密钥哈希值XXXXXXXXX ....不匹配任何存储的密钥哈希值。配置您的应用程序密钥哈希在......

我们检查了应用程序配置文件,我的帐户也写在那里与管理员权限。

回答

1

运行这段代码在你的应用程序,你将有散列键:

try 
{ 
    //paste Your package name at the first parameter 
    PackageInfo info = getPackageManager().getPackageInfo("PUT_YOUR_PACKAGE_NAME_HERE", 
      PackageManager.GET_SIGNATURES); 
    for (android.content.pm.Signature signature : info.signatures) 
    { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     String sign = Base64.encodeToString(md.digest(), Base64.DEFAULT); 
     Log.e("MY KEY HASH:", sign); 
     Toast.makeText(getApplicationContext(), sign, Toast.LENGTH_LONG).show(); 
    } 
} 
catch (PackageManager.NameNotFoundException e) 
{ 
} 
catch (NoSuchAlgorithmException e) 
{ 
} 

对于一个完整的Facebook登录例子see this answer

由于您是从其他设备进行日志记录,因此应在facebook console中启用您的应用。检查this answer看看如何。

+0

但这是我使用的代码,检查我写的帖子中的链接。 – Epsilon

+0

你确定你已经编辑了你的Facebook开发者控制台并保存了你的设置吗? –

+0

是的,因为该应用程序如果我尝试与我的朋友facebook accout,我的意思是在我的手机上,如果我用我的朋友帐户的Facebook本机应用程序 – Epsilon

0

请确保您使用正确的密码,因为keytool显然不会拒绝不正确的密码,并会生成不正确的密码。默认的密钥库密码是android