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

Google Apps Script调用Drive.Drives.list仅返回10条共享网盘问题咨询

解决Google Apps Script调用Drive.Drives.list仅返回10条共享网盘的问题

问题原因

  • Drive API的Drives.list方法默认返回的最大条目数为10,且当共享网盘数量超过单页上限时,会返回nextPageToken标记用于拉取下一页数据,原代码没有处理分页逻辑也没有调整单页返回上限,因此无法获取完整列表。

注意:使用以下代码前需要先在Google Apps Script编辑器中启用高级Google服务中的Drive API:点击编辑器顶部「扩展」-「Apps Script」进入项目界面,点击左侧「服务+」,找到Drive API,添加即可使用。

修复后的完整代码

function getAllSharedDrives() {
  let allDrives = [];
  let pageToken = null;
  // 分页拉取所有共享网盘
  do {
    const params = {
      maxResults: 100, // 单页最大返回100条(Drive API允许的单页上限)
      pageToken: pageToken
    };
    const res = Drive.Drives.list(params);
    // 把当前页的网盘数据存入数组
    if (res.items && res.items.length > 0) {
      allDrives = allDrives.concat(res.items.map(drive => ({
        id: drive.id,
        name: drive.name
      })));
    }
    // 获取下一页的令牌,没有的话就退出循环
    pageToken = res.nextPageToken;
  } while (pageToken);

  // 输出所有共享网盘信息
  allDrives.forEach(drive => {
    Logger.log(`网盘ID:${drive.id}`);
    Logger.log(`网盘名称:${drive.name}`);
  });

  // 可直接返回allDrives数组给其他业务逻辑调用
  return allDrives;
}

代码调整说明

  • 新增分页处理逻辑,通过nextPageToken循环拉取所有页面的数据,直到没有下一页令牌为止
  • 增加maxResults参数,设置为Drive API允许的单页最大返回值100,减少请求次数
  • 删除原代码中冗余的JSON序列化再反序列化的无用操作

内容的提问来源于stack exchange,提问作者Padmaraj Pichandi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:04