使用facebook SDK时无效的android_key参数

shr*_*nth 3 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************
Run Code Online (Sandbox Code Playgroud)

我在我的第一台笔记本电脑上生成了一个密钥哈希,并在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
Run Code Online (Sandbox Code Playgroud)

Vis*_*ale 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());
    }`
    
    Run Code Online (Sandbox Code Playgroud)