获取Google Drive API授权码时遇重定向URI访问拒绝,求解决方案
检查Google Cloud Console的重定向URI配置
登录Google Cloud Console,找到你的项目,进入「API和服务」→「凭据」,定位到对应的OAuth 2.0客户端ID,确认「已授权的重定向URI」列表里包含代码中使用的URI。注意必须完全匹配,包括协议(http/https)、端口号、路径,比如本地测试常用http://localhost:8080/或http://127.0.0.1:端口号/callback,不能有拼写或格式错误。确保代码中的重定向URI与配置一致
在授权逻辑代码里,redirect_uri参数的值要和Cloud Console中配置的完全相同。以Python为例:flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file( 'credentials.json', scopes=['https://www.googleapis.com/auth/drive.readonly'], redirect_uri='http://localhost:8080/' # 此处需与控制台配置严格一致 )匹配OAuth客户端类型
本地开发请选择「桌面应用」类型的客户端ID,这类客户端允许使用localhost作为重定向URI;如果是Web应用,必须使用Web类型客户端ID,且重定向URI不能是本地地址(测试环境特殊配置除外)。清除旧授权缓存
本地开发时,之前保存的令牌缓存可能留存旧的重定向URI信息,删除缓存文件(通常是token.json或项目目录下的.credentials文件夹)后,重新发起授权请求。确认Google Drive API已启用
进入「API和服务」→「库」,搜索「Google Drive API」并确认它已启用,未启用的话点击启用按钮。检查OAuth同意屏幕配置
测试阶段,确保你的Google账号在OAuth同意屏幕的「测试用户」列表中;如果是已发布应用,需确认同意屏幕已通过Google审核,否则仅测试用户能正常完成授权。
内容的提问来源于stack exchange,提问作者Hiral Kariya

