虽然我把我的哈希键后,不能让我的Android应用程序使用Facebook

时间:2013-07-20 13:49:03

标签: android facebook facebook-android-sdk

我在服务器崩溃后将我的eclipse更改为另一个版本。现在我无法将我的应用程序登录到Facebook或发布文本或图像。

我知道如何生成debug.keystore哈希键,以及我使用它导出应用程序的Keystore哈希键。 顺便说一句,我删除了我的debug.keystore并生成一个新的尝试解决问题,我失败了。

以下是用于debug.keystore的命令:

  

C:\ Program Files \ Java \ jre7 \ bin \ keytool.exe“-exportcert -alias androiddebugkey -keystore   C:\ Users \ Administrator.android \ debug.keystore |   C:\ Windows \ SysWOW64 \ openssl.exe sha1 -binary |   C:\ Windows \ SysWOW64 \ openssl.exe base64

这也是我用来将我的应用导出到我的密钥库:

  

“C:\ Program Files \ Java \ jre7 \ bin \ keytool.exe”-exportcert -alias   exportkeystore -keystore“C:\ Users \ Administrator \ APKs \ exportkeystore”   | C:\ Windows \ SysWOW64 \ openssl.exe sha1 -binary |   C:\ Windows \ SysWOW64 \ openssl.exe base64

我将生成的两个哈希键放入我的Facebook android原生应用程序中。 另外我注意到我的日食SHA已经改为另一个,我之前的日食是朱诺,现在是开普勒。

现在,解决方案是什么? 如何解决我的Facebook登录问题?和 我可以在eclipse指纹证书更改后发布我的应用程序(即新的SHA)吗?

2 个答案:

答案 0 :(得分:2)

我解决了我的问题,请参考官方的Facebook API文档: Setting a Release Key Hash

答案 1 :(得分:0)

尝试从应用的第一个Activity的onCreate api调用以下方法。它将打印一个Hash Key,将其与您添加到Facebook应用程序中的HASH进行比较,看看是否存在问题

 public void printHashKey() {

    try {
        PackageInfo info = getPackageManager().getPackageInfo("your.package.name",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("TEMPTAGHASH KEY:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

}