首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Facebook登录实现- Android)为“调试”和“发布”环境生成无效的密钥哈希,如何解决这个问题?

(Facebook登录实现- Android)为“调试”和“发布”环境生成无效的密钥哈希,如何解决这个问题?
EN

Stack Overflow用户
提问于 2020-08-13 08:03:27
回答 2查看 116关注 0票数 0

我想分享一下我在StackOverflow上找不到的东西。我将分享我迄今所做的工作以及我从未面对过的相应产出。

我所做的:

  1. 遵循FB登录实现文档,并从Facebook中添加了用于默认深度链接事务的LoginActivity,
  2. 创建了调试键哈希,并从CLI获得了不寻常的哈希键,如下所示。在您可能看到的图像中,=丢失了。

  1. 我无法在实现Facebook的登录API时使用这个键哈希。它说键散列必须以=字符结尾。参考文献:在下面的图片中.

同样的事情也发生在我的release哈希键上。那么,我怎样才能摆脱这种问题呢?

EN

回答 2

Stack Overflow用户

发布于 2020-08-13 08:11:16

如果您有ssl执行器,那么尝试以下操作

代码语言:javascript
复制
keytool -exportcert -alias androiddebugkey
-keystore "$PATH\debug.keystore" | "$OPENSSL_PATH\bin\openssl" sha1 -binary |"$OPENSSL_PATH\bin\openssl" base64
}

备选方案:

第一步

转到http://tomeko.net/online_tools/hex_to_base64.php

第二步

将SHA-1粘贴到第一个字段中。

第三步

在“输出(base64)”下复制输入字段中的文本

第四步

现在打开developer.facebook.com/ app,单击左侧的应用程序,导航到"Settings“-> Basic,在这里的Base64文本中,键哈希下面

票数 1
EN

Stack Overflow用户

发布于 2020-08-13 08:30:15

这是获取SHA-1密钥的最快方法。请按照以下步骤操作。

打开(root))

  • Click
  1. 在Gradle上打开项目
  2. (从右侧面板,您将看到Gradle Bar ),
  3. 单击刷新(单击Gradle Bar上的刷新,您将看到项目的列表Gradle脚本)
  4. 单击您的项目(您的项目名称表单列表列表在任务上H212/code>
  5. 单击signingReport上的signingReport上的SHA1和MD5 (有时在Gradle控制台中))

示例

从模块选择下拉菜单中选择app模块以运行或调试应用程序

然后在活动的onCreate中调用以下函数

在App中,按照下面的代码生成哈希键。然后运行您的应用程序,您可以在logcat中检查您的哈希键。

代码语言:javascript
复制
fun generateHashKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63390708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档