google-oauthlib-tool 不询问授权码并且在 rpi-4B 上没有“--headless”选项

问题描述 投票:0回答:1

我正在尝试按照 Google 的本指南google assistant SDK 嵌入到我的树莓派中。但是,我坚持在指南的生成凭据步骤中配置Oauth2凭据。

我安装了

google-auth-oauthlib[tool]
包来运行
google-oauthlib-tool
。当我按照指南中的说明运行该工具时,出现以下错误:

$ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
      --save --headless --client-secrets /path/to/client_secret_client-id.json
Error: no such option: --headless

(PS。我将 --client-secrets 路径修改为从 google projects API 凭据页面下载的正确 json 文件

当我从命令中删除

--headless
选项时,该工具会按预期生成授权 URL。我可以转到 URL,登录到我的谷歌帐户并激活必要的权限。接下来,我得到一个谷歌“无法访问的网站”页面,因为它指的是一个以
localhost:8080/...
开头的 URL。从完整的 url 中,我可以提取所需的
4/...
代码来完成授权过程......理论上,我随后注意到
google-oauthlib-tool
从未要求我在终端中提供授权代码。它只是显示一个空行但它应该说(根据step 4):

Enter the authorization code:

有谁知道为什么

google-oauthlib-tool
从不询问授权码?它可能与缺少
--headless
选项有关,但我对整个 Oauth2 过程了解不够。

我已经尝试强制重新安装所有相关工具,但这并没有解决问题。

会议信息:

  • 蟒蛇3.9.2

  • 点 23.0.1

  • google-auth-oauthlib 1.0.0

  • linux内核:Linux 6.1.21-v8+ aarch64

  • 操作系统:Debian GNU/Linux 11(靶心)

  • 平台:树莓派4B

python-3.x google-api google-oauth raspberry-pi4 google-assistant-sdk
1个回答
0
投票

我找到了我自己问题的答案,但我会留下这篇文章以供将来参考。

背景: 我仔细研究了“无头”的实际含义(对你们大多数人来说可能是非常基本的)。它指的是“无头客户端”,也就是没有 GUI(图形用户界面)运行的应用程序/操作系统。基本上,只有命令行。 因此,我意识到我安装了树莓派操作系统的 GUI 版本,而不是精简版。谷歌指南可能假设我正在运行一个无头客户端。

解决方案: 我没有通过 ssh 远程连接到我的树莓派,而是直接通过 GUI 从设备本身打开命令行,并在没有

google-oauthlib-tool
选项的情况下运行
--headless
。然后
localhost:8080/...
链接起作用了,它在我的设备上创建了凭据文件。

© www.soinside.com 2019 - 2024. All rights reserved.