Google API Python快速启动报错:缺少refresh_token字段
解决Google People API Python示例读取token.json时缺少refresh_token的问题
问题原因
首次运行成功是因为临时access_token尚未过期,但你的授权请求未包含offline_access权限,导致Google不会返回refresh_token。当access_token过期后,脚本尝试读取token.json里的refresh_token来刷新凭证,就会触发缺失字段的错误。另外也可能是旧的token.json文件被意外修改或损坏,丢失了关键字段。
解决步骤
修改Scope,添加离线访问权限
找到脚本中的SCOPES定义,加入https://www.googleapis.com/auth/offline,示例代码:SCOPES = [ 'https://www.googleapis.com/auth/contacts.readonly', 'https://www.googleapis.com/auth/offline' ]这个权限是获取refresh_token的必要条件,能让应用在用户不主动操作的情况下自动刷新访问凭证。
删除旧token,重新完成授权
删除当前目录下的token.json文件,重新运行脚本,再次完成浏览器端的认证流程。这次生成的新token.json会包含refresh_token字段,后续运行就能正常读取并自动刷新凭证了。确认OAuth客户端类型(可选)
检查Google Cloud Console里创建的OAuth客户端ID类型为桌面应用,这类客户端默认适配本地脚本的离线授权流程,更容易获取到refresh_token。
内容的提问来源于stack exchange,提问作者Thomas Petazzoni
相关产品推荐
相关产品推荐

