使用个人Gmail账户调用Google Calendar API时遇401 invalid_client错误
解决R调用Google Calendar API的401 invalid_client错误
核对客户端凭证类型
- 个人Gmail账号调用API时,必须创建桌面应用类型的OAuth客户端ID,不能用Web应用或其他类型。登录谷歌云平台,进入「API和服务」→「凭据」页面,确认你的客户端ID属于桌面应用类别。
检查凭证复制准确性
- 确认代码里的
xx是谷歌云平台的客户端ID(不是API密钥),yy是对应的客户端密钥,复制时不要带多余的空格、换行符,确保字符完全匹配。API密钥和OAuth客户端ID是不同的凭证,别搞混。
配置OAuth同意屏幕
- 未配置OAuth同意屏幕会导致授权失败,按以下步骤操作:
- 进入谷歌云平台「API和服务」→「OAuth同意屏幕」,选择「外部」类型(个人账号只能选这个)。
- 填写基础应用信息,添加Google Calendar相关的授权范围(比如
https://www.googleapis.com/auth/calendar或只读权限)。 - 将你的个人Gmail账号添加为测试用户——未通过验证的应用仅允许测试用户访问。
改用标准授权配置代码
- 如果使用
googlecalendar包,更推荐配合googleAuthR包的规范配置方式,替代直接设置options:library(googleAuthR) library(googlecalendar) # 设置客户端凭证和授权范围 gar_set_client( client_id = "你的客户端ID", client_secret = "你的客户端密钥", scopes = "https://www.googleapis.com/auth/calendar" ) # 触发授权流程 gc_auth()
清除旧授权缓存
- 若之前有错误的授权缓存残留,会导致凭证冲突,先运行以下命令重置:
之后重新执行授权代码,重新登录你的Gmail账号完成授权。gar_auth_reset()
内容的提问来源于stack exchange,提问作者Psg Holiday calendar
相关产品推荐
相关产品推荐

