Facebook登录显示错误

时间:2017-03-08 07:21:35

标签: android key facebook-javascript-sdk

我的Android应用程序中有一个facebook登录按钮。我可以使用该按钮登录。按钮只有一次我可以使用Facebook登录按钮登录。我在成功注销后第二次登录失败。这是我收到的登录回复

  

Facebook ErrorInvalid密钥哈希。密钥哈希HG2kYV1on + 6yY1J7stl4KGrNsPA =与任何存储的密钥哈希值不匹配。在https://developers.facebook.com/apps/596405140754842/

配置您的应用密钥哈希值

但是我将这些哈希键复制到我的facebook devolopers页面中存储的keyhashes后登录。当我在另一部手机上安装此应用程序时出现同样的问题。我通过将无效的哈希密钥复制到我的Facebook开发者页面中存储的哈希密钥来解决它。我还在没有facebook应用程序的手机上安装了我的应用在这种情况下,会出现一个新的弹出窗口,询问电子邮件和Facebook密码。我可以在这些手机上登录和注销任意次数

但是我需要在登录时使用Facebook应用程序进行facebook登录,而无需为每部手机提供哈希密钥

1 个答案:

答案 0 :(得分:1)

创建两个keyHashes

  1. 使用命令提示符:

    $ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
    
  2. 使用以下代码:

    private String getAppKeyHash() {
      try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;
    
            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String something = new String(Base64.encode(md.digest(), 0));
            return something;
    
        }
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return null;
    

    }

  3. 在Facebook开发者应用程序中添加两个关键词。

    这会奏效。