使用 facebook sdk 为应用程序生成哈希键

Posted

技术标签:

【中文标题】使用 facebook sdk 为应用程序生成哈希键【英文标题】:Generating hash key for app using facebook sdk 【发布时间】:2011-08-24 18:11:57 【问题描述】:

我正在使用 facebook sdk 登录我的应用程序。 该应用程序在 HTC 设备上运行良好。 如果没有预先安装 facebook 应用程序,该应用程序也可以在三星设备上正常运行。

但是,如果移动设备上已经有 facebook 应用程序,然后用户安装了我的应用程序,则用户永远不会登录。 据我所知,我认为这可能是单点登录的问题,我认为这与生成正确的应用程序哈希键以及在我用来登录移动应用程序的 Facebook 应用程序中使用哈希键有关。

请指导我如何创建哈希键。我正在运行 ubuntu 10.4。

当我在终端中运行此命令时:-

keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64

我从来没有被提示输入密码,尽管我得到了哈希键。

【问题讨论】:

[Here][1] 你可以得到你的答案,它也帮助了我。 ***.com/a/12405323/2331725[1]:***.com/a/12405323/2331725 生成hashkey[简单方法在这里][1][1]:***.com/questions/5306009/… 我已经生成了密钥哈希,但不知道该把密钥放在哪里,您能指导我吗?我在 Ubuntu 上运行 android studio。 你找到错误了吗?究竟哪个命令对你有帮助?我也面临同样的问题。 【参考方案1】:

只要给出命令:

keytool -exportcert -alias androiddebugkey -keystore debug.keystore

并给出击键密码或android或输入

这里你必须去目录结构直到“.android”然后运行这个commnad。一般路径是C:\Users\User-name\.android&gt;

【讨论】:

我已经生成了密钥哈希,但不知道该把密钥放在哪里,你能指导我吗?我在 Ubuntu 上运行 android studio。【参考方案2】:

如果它没有提示您输入密码,请先打开您的终端并输入:

sudo apt install openjdk-8-jre-headless

然后按照常规方式,输入:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

输入密码:android 你们都完成了。

此答案仅用于调试目的,为了发布目的,请使用您的 .jks 文件生成哈希密钥。

【讨论】:

工作就像一个魅力! 谢谢,刚刚切换到 Ubuntu 并尝试修复此问题几个小时。【参考方案3】:
C:\openssl\bin>keytool -exportcert -alias aliasName -keystore "C:\Users\s\.android\debu
g.keystore" | "C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" b
ase64
Enter keystore password:  android
GEYtOJobR4NzuxX4iOl/yR6sla4=

【讨论】:

【参考方案4】:

检查您环境中的三个部分。

    “debug.keystore”在哪里?

    找到/ -name "debug.keystore"

    如果找不到,请检查 eclipse 或 ADT。

    什么是别名

    keytool -list -v -keystore "PATH_TO_DEBUG_KEYSTORE"

    检查是否安装openssl

    openssl

如果一切准备就绪,它应该会提示输入密码

【讨论】:

我已经生成了密钥哈希,但不知道该把密钥放在哪里,您能指导我吗?我在 Ubuntu 上运行 android studio。 输入密码后显示中文的发布apk请帮助我【参考方案5】:

您可以使用此代码块来生成哈希键。将此代码块放入您的 onCreate() 方法中。

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

     catch (NoSuchAlgorithmException e) 

    

【讨论】:

对我来说效果很好...也尝试了以下命令以获得相同的结果:keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -二进制 | openssl base64 就是这样。记得用你的包名更改“你的包名”;) 这段代码是否在调试和发布中产生相同的哈希键? 我已经生成了密钥哈希,但不知道该把密钥放在哪里,你能指导我吗?我在 Ubuntu 上运行 android studio。【参考方案6】:

试试这个:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -二进制 | openssl base64

我希望你能得到它。我刚查了一下,提示输入密码。

【讨论】:

我没有使用调试密钥库来检查应用程序。我正在创建一个新的密钥库 在我的情况下,它甚至没有要求输入 androiddebugkeystore 的密码......可能有什么问题 你输入的准确吗?检查空格和所有?在 debugkeystore 的情况下 很抱歉,我现在的头绪少了。 该命令在 ubuntu 10.10 上对我有用,而 Facebook 文档中的 cmd 却没有。谢谢。

以上是关于使用 facebook sdk 为应用程序生成哈希键的主要内容,如果未能解决你的问题,请参考以下文章

未找到密钥哈希:facebook sdk

Facebook SDK 密钥哈希 - 忘记了吗?

text 为facebook生成发布哈希密钥

Facebook IOS SDK URL方案生成

关于 Android 版 Facebook SDK 的开发和发布密钥哈希的问题

对于使用 Facebook iOS SDK 的混合 SSO 场景,为我们自己的自定义用户记录生成密码/密钥的最佳方式是啥?