测试阶段Gmail API的Google JSON令牌过期问题及相关疑问
关于Google Cloud OAuth与Shiny应用邮件功能的问题解答
一、关于“测试阶段应用”的疑问
- Google OAuth同意屏幕中的“测试阶段应用”,指的是未通过Google官方审核、仅允许指定测试用户使用OAuth权限的应用。这类应用的OAuth刷新令牌有效期默认只有7天,这就是你遇到令牌几天后过期的核心原因。哪怕你的Shiny应用已经在shinyapps.io上线并正常运行,只要Google Cloud端的应用处于测试状态,令牌有效期就会被限制。
二、关于发布为正式生产状态的疑问
应用对所有Google账号用户可用是什么意思?
这里的“应用”指的是你在Google Cloud创建的OAuth客户端,而非部署在shinyapps.io的Shiny应用。你的Shiny应用不需要用户登录或授权,所以这个设置和终端用户无关——它是针对需要请求其他Google账号权限的场景,比如让用户授权你的应用访问他们的邮箱。而你的场景是用自己的账号发邮件,这个设置不会影响你的终端用户。用户访问我的应用时会发生什么?
用户访问你的Shiny应用时,不会有任何变化:提交表单后,应用通过你预先配置的凭据(借助gmailr)发送邮件,全程不需要用户进行Google账号登录或授权操作,用户完全感知不到Google OAuth的存在。我的凭据(如JSON文件)是否安全?
发布到生产状态本身不会影响凭据的安全性,但你需要做好凭据的存储防护:
- 绝对不要将JSON凭据文件上传到公开代码仓库
- 在shinyapps.io部署时,使用平台提供的保密凭据功能或环境变量来存储凭据,不要直接将文件放在应用公开目录中
- Google的生产状态审核主要是验证应用的权限使用是否合规,不会泄露你的个人凭据
内容的提问来源于stack exchange,提问作者nd091680
相关产品推荐
相关产品推荐

