我从调用语音转文本 API 的 Go 库开始,如 https://cloud.google.com/speech-to-text/docs/libraries#client-libraries-usage-go 中所述。我创建了一个新的服务工作线程,为其指定了“所有者”角色,并将环境变量GOOGLE_APPLICATION_CREDENTIALS设置为指向凭据文件。但是,当它调用该函数时,将返回错误:Recognize()
2021/07/09 16:58:02 failed to recognize: rpc error: code = PermissionDenied desc = Provided scope(s) are not authorized
作为健全性检查,我可以将该文档页面中的 Node 库代码复制粘贴到新的节点脚本中,将GOOGLE_APPLICATION_CREDENTIALS变量设置为相同的凭据文件,然后测试代码运行正常:
$ node quickstart.js
Transcription: how old is the Brooklyn Bridge
因此,非常基本的 Nodejs 客户端示例代码工作正常,但 Go 示例代码则不能。
我已经使用相同的Go项目尝试了存储API,并发现我可以枚举存储桶,获取对象上的Attrs,并使用相同的服务工作线程凭据上传文件,因此我确信它找到了凭据。
如果我进入调用,在内部我可以看到它正在调用并设置范围“https://www.googleapis.com/auth/cloud-platform”,我认为这都是正确的。NewClient()defaultGRPCClientOptionsinternaloption.WithDefaultScopes(DefaultAuthScopes()...),
我正在运行 go 1.16.5,我的有:go.mod
require (
cloud.google.com/go v0.86.0 // indirect
cloud.google.com/go/storage v1.16.0 // indirect
firebase.google.com/go/v4 v4.6.0 // indirect
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect
github.com/gin-gonic/contrib v0.0.0-20201101042839-6a891bf89f19 // indirect
github.com/gin-gonic/gin v1.7.2 // indirect
github.com/golang/gddo v0.0.0-20210115222349-20d68f94ee1f // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/sessions v1.2.1 // indirect
github.com/mattn/go-isatty v0.0.12 // indirect
github.com/sirupsen/logrus v1.8.1 // indirect
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914 // indirect
google.golang.org/api v0.50.0 // indirect
google.golang.org/genproto v0.0.0-20210708141623-e76da96a951f // indirect
google.golang.org/protobuf v1.27.1 // indirect
)
我能做些什么来调查这个范围错误?
catspeake
相关分类