使用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)
它应该工作得更好。