使用facebook SDK时无效的android_key参数

时间:2013-09-14 11:43:46

标签: android facebook

当我尝试在S3上运行我的应用程序时,我收到以下错误

    Invalid android_key parameter. The key VgmNos1v_wYCwwxenlSneyDLza8 
does not match any allowed key. Configure your app key hashes at http://developers.facebook.com/apps/299************

我在我的第一台笔记本电脑上生成了一个密钥哈希并在Facebook开发者网站上添加了..一切都很顺利,当我跑步时,它要求在模拟器上进行SSO,因此我能够发布。

几天后,我开始在不同的笔记本电脑上工作,并在S3上运行并得到此错误。谷歌搜索后,我发现我们需要将其添加为密钥哈希。我添加了关键的VgmNos1v_wYCwwxenlSneyDLza8,这是在错误中并尝试但是工作。所以我在第二台笔记本电脑上生成了一个密钥哈希并收到了一个密钥哈希vyCoFm3xLkoFa8lp7l + LIAGhIe4 =这与错误中的不同。所以我添加了两个但仍然存在错误。

请帮助我,因为我非常严重地停留在这一点:(

请注意:我仍处于调试模式。

我想知道与机器相关的密钥哈希?每台机器都有唯一的密钥哈希? 我使用下面的命令在第二台笔记本电脑上生成密钥哈希

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\605577709\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

1 个答案:

答案 0 :(得分:7)

是keyhash取决于androiddebugkey&它根据设备而有所不同。所以你可以做任何一个 -

  1. debug.keystore文件从用户的目录 - > .android从旧m / c复制到新m / c。

  2. 使用此代码获取新密钥哈希 -

    try{ logger.debug("Checking signs");
        PackageInfo info = getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            logger.debug(Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
        logger.debug(e.getMessage());
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        logger.debug(e.getMessage());
    }`