测试模式下无需验证应用,如何登录并获取Google Drive全部文件?
解决Google Drive测试模式下的OAuth提示与全文件访问问题
一、消除“Google未验证此应用”提示的关键操作
即使添加了测试用户仍出现提示,需逐一确认以下配置:
- 测试用户邮箱完全匹配:必须使用Google Cloud Console OAuth同意屏幕中添加的完整邮箱地址登录,不能使用别名或账号变体。
- OAuth同意屏幕模式确认:确保应用处于「测试」模式而非「生产」模式,且
drive.readonly权限范围已添加并设为「已授权」(测试模式下无需审核,直接勾选即可)。 - 清除本地OAuth缓存:安卓/iOS端卸载重装应用或清除账号缓存;Web/桌面端清除浏览器OAuth相关Cookie或重置Google Sign-In本地存储。
二、确保获取Google Drive全部文件的配置
你的代码已使用正确的drive.readonly范围,需补充API调用参数以确保获取所有文件:
修改files.list调用,添加必要参数覆盖默认限制:
drive.FileList? fileList = await driveApi.files.list( spaces: "drive", corpora: "user", // 明确指定获取当前用户的所有文件 includeItemsFromAllDrives: true, // 可选:如需访问共享驱动器文件 supportsAllDrives: true, // 配合共享驱动器参数使用 );
三、代码潜在优化点
- GoogleSignIn实例全局化:避免每次登录重复初始化,将实例设为类成员变量:
final GoogleSignIn _googleSignIn = GoogleSignIn.standard( scopes: [drive.DriveApi.driveReadonlyScope], );
- 添加登录异常捕获:避免登录失败导致后续代码崩溃:
Future _signinUser() async { try { account = await _googleSignIn.signIn(); } catch (e) { log("Google Sign-in error: $e"); } }
四、测试模式限制说明
测试模式下最多支持100个测试用户,且用户需为Google Cloud Console项目成员或直接添加的邮箱。若提示仍存在,可等待15-30分钟(Google配置存在延迟),或检查OAuth同意屏幕的测试用户列表状态。
内容的提问来源于stack exchange,提问作者Abdul hadi
相关产品推荐
相关产品推荐

