由于命令中的错误,带有 Flutter 的 Facebook Auth 未提供密钥哈希

Posted

技术标签:

【中文标题】由于命令中的错误,带有 Flutter 的 Facebook Auth 未提供密钥哈希【英文标题】:Facebook Auth with Flutter not giving key hashes due to error in the command 【发布时间】:2020-07-06 04:32:35 【问题描述】:

我正在构建一个应用程序,其中包含 Facebook 登录和注册,所以当我需要使用此命令获取密钥哈希时

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\aasal\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64


在 Window10 PowerShell 上 给我以下错误:

+ ... ers\aasal\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -b ...
Expressions are only allowed as the first element of a pipeline.
At line:1 char:122
+ ... asal\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary ...

Unexpected token 'sha1' in expression or statement.
At line:1 char:137
+ ... :\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64

Expressions are only allowed as the first element of a pipeline.
At line:1 char:162
+ ... :\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64

Unexpected token 'base64' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline

注意:- 我从这个链接下载了 OpenSSL https://code.google.com/archive/p/openssl-for-windows/downloads 我从 oracle 的网站下载了最新的 Java jre1.8.0_241。 我从不同的路径运行命令,C:\、桌面、C:\Program Files (x86)\Java 和许多其他路径,同样的错误不断发生。

【问题讨论】:

【参考方案1】:

在没有 &(调用)运算符的情况下运行外部程序会出现错误。如果没有调用运算符,则路径仅被视为普通字符串。试试这个:

& "keytool.exe" -exportcert -alias androiddebugkey -keystore "C:\Users\aasal\.android\debug.keystore" | & "C:\OpenSSL\bin\openssl.exe" sha1 -binary | & "C:\OpenSSL\bin\openssl.exe" base64

也可以使用停止解析符号(--%):

keytool.exe --% -exportcert -alias androiddebugkey -keystore "C:\Users\aasal\.android\debug.keystore" | C:\OpenSSL\bin\openssl.exe --% sha1 -binary | C:\OpenSSL\bin\openssl.exe --% base64

【讨论】:

哈哈谢谢大佬,我也用过普通的CMD,帮我把它变成了28个字符,powershell给了32个, 实际上确实如此,powershell 为 facebook 哈希键提供 32 个字符,而 cmd 为 28 个字符 facebook auth 哈希键必须为 28 个字符查看此线程:***.com/questions/33340242/…

以上是关于由于命令中的错误,带有 Flutter 的 Facebook Auth 未提供密钥哈希的主要内容,如果未能解决你的问题,请参考以下文章

Flutter web 在带有深色主题的 Android 浏览器中的颜色错误

Flutter - html页面内带有href链接的WebView错误

Flutter:每个flutter命令都会出现这个错误

使用带有 Flutter 后退按钮的 onGenerateRoute 时断言失败

Flutter“入口点不在当前项目中。” Android Studio 上的错误

带有 Flutter 的 AppCenter(IOS 和 Android)