11

我正在尝试使用谷歌语音 API 将音频文件转换为文本,但在文档方面遇到了一些问题。我已启用语音 API 并创建了一个服务帐户文件。我还激活了服务帐户凭据。然后我编写了以下命令来使用我的服务帐户检索授权令牌。

gcloud auth application-default print-access-token

但它正在返回此消息 在此处输入图像描述

我不明白为什么会发生这种情况,因为我已经在我的 Compute Engine 中创建了一个 VM 实例。任何人都可以解释我在哪里错了吗?另外,还有其他方法可以验证我的帐户并调用谷歌语音 API 吗?

4

3 回答 3

31

gcloud 凭证和应用程序默认凭证是分开管理的。如果您激活了服务帐户密钥文件,则它只能用于 gcloud 命令,但不能用于应用程序默认凭据。

gcloud auth application-default一组命令仅用于管理应用程序默认值,与gcloud auth.

有几种方法可以“激活”应用程序默认凭据:

  • 使用您的用户帐户
    • 运行gcloud auth application-default login,或
  • 使用服务帐户(首选)

    • 设置环境变量GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service_accont_key_file.json
    • 复制path/to/your/service_accont_key_file.json到 ~/.config/gcloud/application_default_credentials.json`

      • 在 Windows 上,这可能会有所不同,请运行

        gcloud info --format="value(config.paths.global_config_dir)"
        

        获取配置目录的路径。

现在命令像

gcloud auth application-default print-access-token

应该管用。

于 2017-07-06T10:46:31.357 回答
3

作为一种解决方案,您可以下载 GCLOUD 控制台,然后在控制台“gcloud auth application-default”上运行此命令,使用具有项目访问权限的 gmail 帐户登录,然后您将获得已启用的 google api 的访问权限。

于 2017-09-19T11:44:53.713 回答
1

您可以使用以下命令在 gcloud 上生成密钥 json 文件:gcloud auth application-default login

google会显示一个链接来确认,一旦你这样做了,就会显示临时文件夹中的json文件

在此处输入图像描述

于 2019-10-29T12:38:03.780 回答