在Google Cloud中具有所有者角色的用户在使用Gmail Api时获得403



使用gcloud,我使用我的电子邮件地址me@gmail.com登录到终端窗口。这个项目启用了Gmail API,我是这个配置的所有者。gcloud auth list显示

`Active Account`
`*me@gmail.com`

gcloud projects get-iam-policy $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'

然后使用应用程序默认的access_token来调用您的服务

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)

它应该工作得更好。

相关内容

  • 没有找到相关文章