Android Facebook登录哈希键错误

Android Facebook登录哈希键错误,android,facebook,Android,Facebook,我的facebook登录有问题。我使用下面的代码登录facebook,但它给了我无效的密钥哈希错误。我也向facebook开发者添加了哈希键,但我不知道不能登录facebook有什么问题?以前它是登录的,但现在它给出了hashkey错误 public void loginToFacebook() { mPrefs = getPreferences(MODE_PRIVATE); access_token = mPrefs.getString("access_token", nu

我的facebook登录有问题。我使用下面的代码登录facebook,但它给了我无效的密钥哈希错误。我也向facebook开发者添加了哈希键,但我不知道不能登录facebook有什么问题?以前它是登录的,但现在它给出了hashkey错误

public void loginToFacebook() {

    mPrefs = getPreferences(MODE_PRIVATE);
     access_token = mPrefs.getString("access_token", null);
     expires = mPrefs.getLong("access_expires", 0);

    if (access_token != null) {
      facebook.setAccessToken(access_token);

   //   btnFbLogin.setVisibility(View.INVISIBLE);

      // Making get profile button visible


      // Making post to wall visible


      // Making show access tokens button visible


      Log.d("FB Sessions", "" + facebook.isSessionValid());
    }

    if (expires != 0) {
      facebook.setAccessExpires(expires);
    }

    if (!facebook.isSessionValid()) {
      facebook.authorize(this,
          new String[] { "email"},
          new DialogListener() {

            @Override
            public void onCancel() {
              // Function to handle cancel event
            }

            @Override
            public void onComplete(Bundle values) {
              // Function to handle complete event
              // Edit Preferences and update facebook acess_token

                SharedPreferences.Editor editor = mPrefs.edit();
              editor.putString("access_token",
                  facebook.getAccessToken());
              editor.putLong("access_expires",
                  facebook.getAccessExpires());
              editor.commit();

              // Making Login button invisible
             // btnFbLogin.setVisibility(View.INVISIBLE);

              // Making logout Button visible
              getProfileInformation();

              // Making post to wall visible

              // Making show access tokens button visible

            }

            @Override
            public void onError(DialogError error) {
              // Function to handle error

            }

            @Override
            public void onFacebookError(FacebookError fberror) {
              // Function to handle Facebook errors

            }

          });
    }
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    facebook.authorizeCallback(requestCode, resultCode, data);
  }

在setContentView()之后,通过在主活动中输入以下代码来生成哈希键


并从facebook仪表板中的日志和过去复制哈希代码

在setContentView()之后的主活动中输入下面的代码,生成哈希键


并从facebook仪表板的Log和past中复制哈希代码。您可以通过两个步骤获得哈希键。一种是通过命令提示符。另一个是通过编码。仅在第一次使用时通过命令提示符哈希键。因此,请尝试使用通过编程生成的hashkey

在OnCreate()中


运行代码后,您将在logcat中获得哈希键。将该哈希键放入Facebook开发者帐户页面的设置页面。

您可以通过两个步骤获得哈希键。一种是通过命令提示符。另一个是通过编码。仅在第一次使用时通过命令提示符哈希键。因此,请尝试使用通过编程生成的hashkey

在OnCreate()中


运行代码后,您将在logcat中获得hashkey。将该hashkey放入Facebook开发者帐户页面的设置页面。

如果它在运行之前起作用,我建议等待几个小时,因为从今天早上开始,包括我在内的许多安卓开发者都将面临这个问题


根据官方成员的评论,它应该在接下来的几个小时内得到解决。

如果它在工作之前,我会建议等待几个小时,因为从今天早上开始,包括我在内的许多android开发者都面临着这个问题


根据官方成员的评论,它应该在接下来的几个小时内得到解决。

尝试在开发者帐户中复制错误哈希键无效的哈希键。卡什杂烩。。。。。。。。不匹配任何存储的密钥哈希。在http://developer.facebook上配置你的应用程序密钥散列..../我使用的是相同的散列密钥,我生成了它,但我仍然不知道为什么它会出现错误以前它工作得很好,但从今天开始它会出现这样的错误你可以参考这个问题..尝试在你的开发人员帐户中复制错误散列密钥无效密钥散列。卡什杂烩。。。。。。。。不匹配任何存储的密钥哈希。在http://developer.facebook上配置你的应用程序密钥散列..../我使用的是相同的散列密钥,我生成了它,但我仍然不知道为什么它会出现错误以前它工作得很好,但从今天开始它会出现这样的错误你可以参考这个问题..我在上面解释过,这不是散列密钥问题,我使用了相同的hashkey,我使用这段代码来获取hashkey,但仍然存在登录更改您的hash key re Do hash key process的问题我在上面解释过,这不是hashkey的问题,我使用了相同的hashkey,我使用了这段代码来获取hash key,但是仍然存在登录更改您的hash key的问题重新执行hash key进程我不再工作了,我使用了这段代码10多次,错误是其他原因。它一直工作到今天,但从今天开始出现此错误。没有注销错误,我只是在连接facebook时遇到问题。它说哈希无效。我删除应用程序并重新创建,使用openssl和上面代码的检查创建哈希密钥,并将其添加到facebook开发者,但仍然无法连接,无法再次工作,这个代码我用了10多次,错误是别的。它一直工作到今天,但从今天开始出现此错误。没有注销错误,我只是在连接facebook时遇到问题。它说哈希无效。我删除应用程序并再次创建它,使用openssl创建哈希密钥,使用上述代码检查并将其添加到facebook开发者,但仍然无法连接。您是唯一的用户你是唯一给我正确答案的人再次感谢
try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "yourpackegename", //set your package name
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

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

} catch (NoSuchAlgorithmException e) {

}