You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:共享驱动器下google-api-python-client的Permissions.List分页失效

问题分析

你的分页方案失效的核心原因是请求的fields参数未包含nextPageToken。Google Drive API的分页依赖响应中的nextPageToken字段生成下一页请求,但你当前的fields仅指定了permissions(type,emailAddress),导致API不会返回分页令牌,list_next自然无法生成后续请求。

同时,共享驱动器的权限列表逻辑与普通驱动器略有差异,但核心分页机制仍需依赖nextPageToken。

修复后的代码

file_id = "12abcde"  # 你的文件夹ID
all_permissions = []

request = service.permissions().list(
    fileId=file_id,
    fields="nextPageToken, permissions(type,emailAddress)",  # 新增nextPageToken字段
    supportsAllDrives=True,
    pageSize=100  # 显式设置每页最大数量,默认也是100,可按需调整
)

while request is not None:
    response = request.execute()
    # 收集当前页的权限
    if "permissions" in response:
        all_permissions.extend(response["permissions"])
    # 生成下一页请求
    request = service.permissions().list_next(request, response)

# 输出所有权限
for perm in all_permissions:
    print(f"类型: {perm['type']}, 邮箱: {perm.get('emailAddress', '无邮箱(如域权限)')}")

额外注意事项

  • 确保你的API账号拥有共享驱动器的drive.permissions.read权限,或具备团队驱动器管理员权限,否则可能无法获取完整的权限列表。
  • 共享驱动器的权限可能包含继承自上级文件夹或组织域的权限,若需过滤特定类型的权限,可在循环中添加判断逻辑(比如只保留type='user'的条目)。

内容的提问来源于stack exchange,提问作者Nico Albers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 18:38:19