调用Gmail API获取邮件列表时出现认证权限范围不足问题
解答
缺少的权限范围
你当前的access_token仅包含用户身份信息类权限,完全没有Gmail相关权限。要获取邮件列表,至少需要添加**https://www.googleapis.com/auth/gmail.readonly**(只读权限,足够满足获取所有邮件的需求);如果后续需要修改、删除邮件,可以选择https://www.googleapis.com/auth/gmail.modify等更高权限的scope。
修改步骤
- 回到OAuth Playground重新授权:
- 在步骤1的权限选择区域,找到Gmail API对应的权限(比如勾选"Read your email",或者直接手动输入
https://www.googleapis.com/auth/gmail.readonly) - 确保选中的权限包含上述Gmail只读权限,再完成授权流程
- 在步骤1的权限选择区域,找到Gmail API对应的权限(比如勾选"Read your email",或者直接手动输入
- 获取新的
access_token,检查返回的scope字段是否包含https://www.googleapis.com/auth/gmail.readonly - 将新的
access_token替换到你的React代码中,重新调用接口即可
为什么开发者平台测试正常?
因为在developers.google.com测试时,你已经选择了正确的Gmail权限范围,生成的token包含了所需权限;而本地使用的是之前仅申请了用户信息权限的旧token,两者权限不匹配导致报错。
内容的提问来源于stack exchange,提问作者Predrag
相关产品推荐
相关产品推荐

