Google cloud platform 在谷歌云中拥有所有者角色的用户在使用Gmail Api时获得403

Google cloud platform 在谷歌云中拥有所有者角色的用户在使用Gmail Api时获得403,google-cloud-platform,oauth,google-oauth,Google Cloud Platform,Oauth,Google Oauth,使用gcloud我将使用电子邮件地址me@gmail.com。这个项目启用了Gmail API,我是这个配置的所有者gcloud验证列表显示 `Active Account` `*me@gmail.com` gcloud项目获取iam策略$PROJECT显示me@gmail.com作为所有者 我在项目中创建了一个Oauth客户机/机密。我的意图是生成一个访问令牌,以便通过终端对gmail API进行身份验证 `curl -H "Authorization: Bearer $(gclo

使用
gcloud
我将使用电子邮件地址
me@gmail.com
。这个项目启用了Gmail API,我是这个配置的所有者<代码>gcloud验证列表显示

`Active Account`
`*me@gmail.com`
gcloud项目获取iam策略$PROJECT
显示
me@gmail.com
作为所有者

我在项目中创建了一个Oauth客户机/机密。我的意图是生成一个访问令牌,以便通过终端对gmail API进行身份验证

`curl -H "Authorization: Bearer $(gcloud auth print-access-token)" https://gmail.googleapis.com/gmail/v1/users/me/labels`. (me is my actual email address)
这样做给了我403分。但是,我可以使用
https://developers.google.com/oauthplayground/
并得到一个带有我特殊作用域的令牌。我需要传递Oauth客户端Id来打印访问令牌吗?为什么所有者对启用的API中所有可能的操作都没有权限

编辑:我尝试过使用auth应用程序默认凭据进行日志记录,结果也是一样的


TIA

您没有正确的范围。您需要正确地确定凭证的范围。首先,使用此命令在凭证中添加所需的作用域

gcloud auth application-default login \
  --scopes='https://mail.google.com/',\
  'https://www.googleapis.com/auth/cloud-platform'
然后使用应用程序默认访问令牌调用您的服务

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ 
  https://gmail.googleapis.com/gmail/v1/users/me/labels`. (me is my actual email address)

它应该工作得更好。

您没有正确的范围。您需要正确地确定凭证的范围。首先,使用此命令在凭证中添加所需的作用域

gcloud auth application-default login \
  --scopes='https://mail.google.com/',\
  'https://www.googleapis.com/auth/cloud-platform'
然后使用应用程序默认访问令牌调用您的服务

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ 
  https://gmail.googleapis.com/gmail/v1/users/me/labels`. (me is my actual email address)

它应该工作得更好。

在创建访问令牌时,命令
打印访问令牌
不包括所需的Gmail作用域。您需要编写代码或使用curl。作用域列表如下:我在我的站点上写了几篇关于用curl和python创建访问令牌的文章。示例:创建访问令牌时,命令
print access token
不包括所需的Gmail作用域。您需要编写代码或使用curl。作用域列表如下:我在我的站点上写了几篇关于用curl和python创建访问令牌的文章。现在完全有道理了。我知道它必须与作用域相关,但在gcloud auth print access token上没有看到它之后,就忽略了应用程序默认值的scopes参数。格拉齐!现在完全有道理了。我知道它必须与作用域相关,但在gcloud auth print access token上没有看到它之后,就忽略了应用程序默认值的scopes参数。格拉齐!