Google Workspace Drive附加组件如何批量请求多文件scope
问题根因
报错来自字段使用不符合接口规范:
- 单数命名的
requestFileScope仅支持单个文件权限申请,参数结构固定为单个{"itemId": "文件ID"}对象,不接受数组类型入参,传入数组就会触发类型校验错误,返回你看到的「Expect message object but got [...]」运行时异常。 - 一次性申请多个文件权限需要使用复数命名的
requestFileScopes字段,该字段为批量权限申请专用,入参为itemId对象组成的数组。
可直接运行的正确代码
@root_router.post('/on_items_selected', response_class=JSONResponse) async def on_items_selected(request: Request): card = { "renderActions": { "hostAppAction": { "driveAction": { "requestFileScopes": [ {"itemId": "0BzCCD97ant74akBrTHY1eUg5d0k"}, {"itemId": "5BzCCD97ant74akBrTHY1eUg5d0k"} ] } } } } return card
开发注意事项
- 批量传入的文件ID必须属于当前触发上下文里用户选中的文件集合,传入非选中范围的文件ID会被接口直接拦截。
- 授权弹窗会自动聚合所有待授权文件,用户单次确认即可完成全部文件的权限授予,不需要逐个触发授权流程。
- 两个功能字段仅末尾单复数有区别,开发时注意拼写匹配参数类型要求,避免传参结构和字段定义不匹配。

内容的提问来源于stack exchange,提问作者skoudoro
相关产品推荐
相关产品推荐

