【问题标题】:can't generate keyhash facebook无法生成密钥哈希 facebook
【发布时间】:2016-03-22 19:21:33
【问题描述】:

我尝试实现以下 SO 答案:Facebook Android Generate Key Hash

13) 再次复制以下代码并粘贴

openssl base64 -in debug_sha.txt > debug_base64.txt

当我尝试第 13 点(以上)时,我得到了错误:

openssl.exe has stopped working.

我也尝试过使用:

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

但我得到了错误:

Illegal option: Alami.android\debug.keystore keytool -list [OPTION]...

【问题讨论】:

标签: android facebook


【解决方案1】:

您可以直接以编程方式创建它。

只需将此代码添加到您的 onCreate 方法中即可。

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

        }

您将在 Log 中获得 keyhash。

【讨论】:

  • 这个方法我不懂-_-
  • @ArifAlami 你试过用这种方法生成keyhash吗?
  • @ArifAlami 试试这个代码,因为我建议它会给你 keyhash 添加到你的 facebook 项目中。
  • 当应用程序运行时,我在登录 FB 时遇到问题。它说“无效范围:publish_steam。此消息仅向开发人员显示。如果存在,您的应用程序的用户将忽略这些权限。请阅读 /developers.facebook.com/docs/facebook-login/permisions 上的有效权限文档”
【解决方案2】:

尝试从here下载openssl而不是执行

keytool -exportcert -keystore YOUR_PATH_HERE/.android/debug.keystore | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe sha1 -binary | PATH_TO_BIN_FOLDER_OF_SSL_DIRECTORY_IN_C:/openssl.exe base64

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 2013-06-22
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多