当前位置: 首页 > 知识库问答 >
问题:

Android Facebook与无效密钥哈希的集成

太叔豪
2023-03-14

在我的一个应用程序中,我需要从Facebook获取数据。。。我正在这样做:

我已经创建了应用ID。它成功登录,但在注销后,我登录,然后它会给我:

我怎么了?我正在使用Facebook SDK。。。我已经在手机上安装了Facebook。。。它在模拟器中运行良好,但没有安装内置的Facebook应用程序。

这是我的代码:

if (FB_APP_ID == null) {
    Builder alertBuilder = new Builder(this);
    alertBuilder.setTitle("Warning");
    alertBuilder.setMessage("A Facebook Applicaton ID must be " +
                            "specified before running this example: see App.java");
    alertBuilder.create().show();
}

// Initialize the dispatcher
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);

// If a session already exists, render the stream page
// immediately. Otherwise, render the login page.
Session session = Session.restore(this);
if (session != null) {
    dispatcher.runHandler("stream");
}
else {
    dispatcher.runHandler("login");
}

共有3个答案

巫马承德
2023-03-14

如果你面临这个问题,然后把这个关键到您的developer.facebook.com:

然后确保你的应用程序在开发者上实时运行。脸谱网。通用域名格式。

这个绿色圆圈表示应用程序是活的:

如果没有,请按照以下两个步骤让应用程序上线:

第一步进入你的申请→背景→ 添加联系人电子邮件并应用保存更改。

第2步转到应用程序审查选项,确保此切换为是。我添加了一个屏幕截图:

注意:如果要复制hashkey,请检查LogCat中的BlueServiceQueue。

沈博达
2023-03-14

在Google Play控制台中打开应用签名部分,并在应用签名证书下获取SHA-1哈希。然后将其转换为Base64,例如使用以下工具:十六进制-

燕光熙
2023-03-14

生成的哈希键错误。您可以通过两个步骤获得哈希键。

一个是通过命令提示符。另一个是通过编码。命令提示符中的哈希键只在第一次工作。我不知道原因。我也遇到了同样的问题。所以我以编程方式尝试了一下。

遵循以下步骤:

将以下代码粘贴到oncreate()中。

try {
    PackageInfo info = getPackageManager().getPackageInfo(
                           "com.example.packagename",
                           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) {
}

在上面的代码中用你的包名修改“com.example.packagename”,不要失败(你可以在Android清单文件中找到你的包名)。

运行您的应用程序。转到粘贴上述代码的活动。在LogCat文件中,搜索“KeyHash”。您可能会找到一个密钥哈希。复制密钥哈希并转到Facebook应用程序仪表板页面。转到设置并输入详细信息,如下图所示。

完成上述步骤后,重新启动应用程序。您现在可以登录Facebook。有关密钥哈希的更多详细信息,请查看链接。

如果在设置页面中添加了错误信息,则意味着会出现一些错误。因此,请使用正确的信息。此外,如果公众(除您之外)需要使用您的应用程序,则意味着您需要启用权限(在“状态”中更改“是”)

 类似资料:
  • 我无法让我的应用程序允许脸谱网登录。每次用户试图登录脸谱网并用他们的FB验证我的应用程序时,都会给我这个错误: 无效的密钥散列。它们的密钥散列xxxxxxxxxx=不匹配任何存储的密钥散列。在http://developers.facebook.com/apps/xxxxxxxx配置你的应用密钥散列 我已经尝试过通过OpenSSL工具创建一个新的密钥哈希,如下所示: 这样做会给我一个密钥哈希,然后

  • 我已经完成了一个android应用程序的开发,该应用程序使用facebook sdk与facebook集成。目前,我对这个应用程序没有任何问题需要解决,因为它功能齐全,运行良好——但尽管如此,我相信即使应用程序正在运行,我仍然不完全理解Android密钥散列是什么 1)据我所知,facebook sdk为开发者提供了一个独特的应用程序id,以了解他们与谁“交谈”,这样他们也可以控制谁是谁之类的人,

  • 我知道它很古老,有很多类似的问题。我已经看到了不同的答案,但问题仍然出现在我的申请中。 我正在应用程序中的Facebook登录工作。在上传到谷歌播放之前,它在本地运行良好。但是在谷歌播放上发布后,它会给出无效密钥哈希的错误。 我已经使用下面给出的代码在Android Studio上生成了一个密钥哈希,并将其保存在Facebook开发者控制台上。在Facebook开发者控制台中,我也将应用程序上错误

  • keytool-exportcert-alias diego-keystore“c:\users\diego\desktop\celuchat.keystore”“c:\openssl\bin\openssl.exe”sha1-binary“c:\openssl\bin\openssl.exe”base64 celuchat.keystore是我在导出签名的应用程序时使用的密钥库,当keytool

  • 如果我在hashmap中输入一个键和值,并且基于键hashcode生成的索引大于15,并且映射大小仍然小于阈值(即12),会发生什么? 提前谢谢。

  • 我按照步骤创建哈希键。 > 下载的openssl 解压缩并复制bin文件夹中的所有文件,包括openssl.exe 然后我在OpenSSL.exe终端窗口上使用了以下命令 keytool-exportcert-alias androiddebugkey-keystore c:\users\joelle.android\debug.keystore openssl sha1-binary opens