2016-07-23 100 views
0

我创建了一个应用程序,使用Facebook登录。我已经将关键哈希添加到了Facebook开发者页面,并且它在所有设备中运行良好。 现在我已经将应用上传到谷歌播放,当我尝试登录时,它是关键哈希不匹配任何存储的密钥哈希。 我将密钥散列复制到错误消息中并粘贴它。仍然 - 不起作用。 我试图使用释放密钥存储在cmd中生成密钥哈希 - 没有运气。无效的键哈希 - 安卓Facebook的

有谁知道什么是问题以及如何解决它?

在此先感谢!

回答

2

尝试添加下面的代码片段到你的应用程序,而它的同版本的证书签名,比较你提交给Facebook的门户网站之一的散列输出:

PackageInfo info; 
try { 
    info = getPackageManager().getPackageInfo("com.package.name", PackageManager.GET_SIGNATURES); 
    for (Signature signature : info.signatures) { 
     MessageDigest md; 
     md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     String hash= new String(Base64.encode(md.digest(), 0)); 
     Log.e("hash", hash); 
    } 
} catch (NameNotFoundException e1) { 
    Log.e("name not found", e1.toString()); 
} catch (NoSuchAlgorithmException e) { 
    Log.e("no such an algorithm", e.toString()); 
} catch (Exception e) { 
    Log.e("exception", e.toString()); 
} 
+0

但是,这让我对调试的关键散列。它已经在Facebook门户中。它与错误消息中的密钥不同。 – tamird14

+0

发布你的应用程序与发行证书并运行该片段,它将显示发行证书的散列 –

+0

如果我尝试通过android studio运行应用程序,它使用调试密钥库(它从谷歌播放卸载我的应用程序并安装一个新的一个)。如果我从谷歌播放运行应用程序,我会在哪里看到日志消息? – tamird14