Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GOOGLE\u应用程序\u凭据错误_Google Cloud Platform_Google Speech Api_Google Cloud Sdk - Fatal编程技术网

Google cloud platform GOOGLE\u应用程序\u凭据错误

Google cloud platform GOOGLE\u应用程序\u凭据错误,google-cloud-platform,google-speech-api,google-cloud-sdk,Google Cloud Platform,Google Speech Api,Google Cloud Sdk,我正在尝试使用google语音API将音频文件转换为文本,但文档中存在一些问题。我已启用了语音API并创建了一个服务帐户文件。我还激活了服务帐户凭据。然后,我编写了以下命令以使用我的服务帐户检索授权令牌 gcloud auth应用程序默认打印访问令牌 但它正在返回这个信息 我不明白为什么会发生这种情况,因为我已经在我的计算引擎中创建了一个VM实例。谁能解释一下我在这方面出了什么问题?另外,是否有其他方法验证我的帐户并调用google speech API?gcloud凭据和应用程序默认凭据是分

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

gcloud auth应用程序默认打印访问令牌

但它正在返回这个信息


我不明白为什么会发生这种情况,因为我已经在我的计算引擎中创建了一个VM实例。谁能解释一下我在这方面出了什么问题?另外,是否有其他方法验证我的帐户并调用google speech API?

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

gcloud auth application default
命令集仅用于管理应用程序默认值,与
gcloud auth
中的命令无关

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

  • 使用您的用户帐户
    • 运行
      gcloud auth应用程序默认登录名
      ,或
  • 使用服务帐户(首选)

    • 设置环境变量
      GOOGLE\u APPLICATION\u CREDENTIALS=path/to/your/service\u account\u key\u file.json
    • path/to/your/service\u account\u key\u file.json
      复制到~/.config/gcloud/application\u default\u credentials.json`

      • 在windows上,这可能不同,请运行

        gcloud info --format="value(config.paths.global_config_dir)"
        
        获取配置目录的路径

现在命令式

gcloud auth application-default print-access-token

应该可以工作。

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

您可以使用此命令在GCLOUD上生成密钥json文件: gcloud auth应用程序默认登录

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


我尝试使用service account key.json方法验证本地主机,以便与Google api服务通信。我下载json,然后转到窗口的环境路径部分,设置GOOGLE_应用程序_凭据,但仍然无法从本地访问GOOGLE api。我假定您在Windows上工作。只是为了确认一下,一旦您设置了环境变量,您还需要重新启动您试图使用它的任何应用程序。尝试打印环境变量的值,以确认它确实已传播。如果它仍然不起作用,您可能想发布一个关于堆栈溢出的问题,并具体说明如何尝试访问,请给出示例或代码片段,以便其他人可以复制。这才是真正对我有效的方法:
mkdir~/.config/gcloud
然后
mv~/.config/gcloud/keyfile.json~/.config/gcloud/application\u default\u credentials.json
我已经从您的答案中删除了这个问题,所以只剩下解决方案。如果您有新问题(即使是相关问题),也应使用该按钮。旁注:您可能希望复制/粘贴错误文本,而不是使用屏幕截图;这样,文本就可以被搜索引擎编入索引,被盲人和其他人阅读