我正在谷歌云上使用一个服务帐户.出于某种原因,我想在golang中以编程方式获取访问令牌.我可以在命令行上执行gcloud auth application-default print-access-token
次.
有一个library by google,似乎可以让我得到 token .以下是我如何try 使用它:
credentials, err := auth.FindDefaultCredentials(ctx)
if err == nil {
glog.Infof("found default credentials. %v", credentials)
token, err2 := credentials.TokenSource.Token()
fmt.Printf("token: %v, err: %v", token, err2)
if err2 != nil {
return nil, err2
}
然而,我得到一个错误,说token: <nil>, err: oauth2: cannot fetch token: 400 Bad Request
.
我已经定义了GOOGLE_APPLICATION_CREDENTIALS
个env变量并指向json文件.