Gmail API后端脚本OAuth2.0凭证问题:如何获取永久刷新令牌
问题解答
核心结论:得用Google Workspace账号
普通个人Gmail账号没法开启「内部用户」模式,只有Google Workspace(原G Suite)账号才能设置内部应用,直接获取长期有效的refresh token,不用走外部应用那套繁琐的审核流程。
具体操作步骤
1. 注册并配置Google Workspace
- 选基础版即可,绑定自己的域名(没有域名可以注册一个低成本的)
- 账号创建完成后,把你要操作的收件箱邮箱纳入该Workspace域,主账号或域内子账号都可用
2. 配置Cloud项目的OAuth同意屏幕
- 登录Google Cloud控制台,进入你的Gmail API项目
- 打开「OAuth同意屏幕」页面,应用类型选择内部
- 添加Gmail全权限范围:
https://mail.google.com/(该权限可满足查找邮件、获取附件、删除邮件的全部需求) - 保存配置后重新生成授权链接,用你的Workspace账号完成授权,此次获取的refresh token会长期有效(除非主动撤销权限或修改账号密码)
3. 修复Service Account权限(替代方案)
之前用Service Account只能只读访问,是因为没开启域范围委派,按以下步骤调整:
- 登录Workspace管理控制台,找到「API和服务」→「域范围委派」
- 新增你的Service Account客户端ID,添加权限范围
https://mail.google.com/ - 在PHP脚本中,使用Service Account的密钥文件,通过
setSubject()指定要操作的邮箱账号,即可实现读写、删除邮件的权限
协助资源与付费支持
- 可以找Google Cloud授权合作伙伴(如神州数码、中企动力等)协助配置,适合不想自行折腾的新手
- Google Cloud付费支持(基础或高级档)靠谱,能直接对接Google官方技术团队,解决API权限、配置类的复杂问题,响应速度和专业性有保障
内容的提问来源于stack exchange,提问作者Dave_K
相关产品推荐
相关产品推荐

