使用 nextpagetoken 在 Google Apps 脚本查询中提取超过 500 个结果

2024-04-26

在一个有用的回应中这个帖子 https://stackoverflow.com/questions/34398021/directory-query-returns-only-100-users我了解到我可以一次从我的域目录中提取最多 500 个用户结果。现在,我试图让一个脚本继续运行并批量提取 500 个用户,直到它从域(或者在本例中为 OU)中提取所有用户并将它们全部添加到同一个电子表格中。

现在我的代码如下所示:

function writeToSpreadsheet(){
  var values = [];
  var users = AdminDirectory.Users.list({
    domain:'klht.org',
    maxResults: 500,
    query: "orgUnitPath=/CleverTeachers/King"
  }).users; 
  for (var i=0; i<users.length; i++){
    values.push([users[i].name.fullName, users[i].primaryEmail]);   
  }
  var spreadsheetID = '1JLDD2wm0_udmTn9ZHvdKhL_Ok3SvKYFqkBeiA1GdnYc';
  SpreadsheetApp.openById(spreadsheetID).getSheets()[0].getRange(1, 1, values.length, values[0].length).setValues(values);
}

我上一篇文章的评论者指出“返回对象的一部分将是‘nextPageToken’,您可以将其添加到后续查询中,直到拥有所有用户为止。”他添加了以下片段:

var usersPage2 = AdminDirectory.Users.list({
                                      domain: 'klht.org',
                                      maxResults: 500,
                                      query: "orgUnitPath=/OU",
                                      pageToken: nextPageToken
                                      }).users;

我发现简单地将其附加在上面的代码下方会引发“ReferenceError:“nextPageToken”未定义。(第 13 行,文件“Code”)”。现在我又被困住了。你能帮我完成这项工作吗?


the nextPageToken我在前面的答案中提到的是第一个查询结果的属性。

为了最好地处理示例中未确定的最大用户数,您最好将查询包装到 AdminSDK 中,并在 while 循环中进行处理,一旦没有更多用户可供查找,该循环就会终止:

function writeToSpreadsheet(){
  var values = [],
      users = [],
      userListQuery = {},
      nextPageToken = '',
      listObject = {
          domain:'klht.org',
          maxResults: 500,
          query: "orgUnitPath=/CleverTeachers/King"
      },
      i = 0,
      spreadsheetID = '1JLDD2wm0_udmTn9ZHvdKhL_Ok3SvKYFqkBeiA1GdnYc';

  do {

    if (nextPageToken && nextPageToken !== '') {
      listObject.pageToken = nextPageToken;
    }  

    userListQuery = AdminDirectory.Users.list(listObject);

    // if there are more users than fit in the query a nextPageToken is returned
    nextPageToken = userListQuery.nextPageToken;

    // Add the query results to the users array
    users = users.concat(userListQuery.users);

  } while (nextPageToken);

  for (i = 0; i < users.length; i += 1) {
    values.push([users[i].name.fullName, users[i].primaryEmail]);   
  }

  SpreadsheetApp.openById(spreadsheetID).getSheets()[0].getRange(1, 1, values.length, values[0].length).setValues(values);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 nextpagetoken 在 Google Apps 脚本查询中提取超过 500 个结果 的相关文章

  • Three.js - 如何翻译几何图形

    我有一个脚本 可以定位各种宽度 高度和深度的立方体 并且正在努力根据 xAxis yAxis 和 zAxis 也有所不同 将它们准确地排列起来 var geometry new THREE BoxGeometry width height
  • 如何在 Web 浏览器中捕获“JavaScript SetCookie 事件”?

    如何在浏览器中捕获 JavaScript SetCookie 事件 我想当 javascript setcookie 事件同时发生时将 cookie 同步到 CookieContainer 例如 有与此相关的事件吗 谢谢 环境 Net 2
  • 停止所有 JavaScript 执行

    是否有一个相当于 php die 函数的 javascript 可以停止所有 javascript 包括将来的 ajax 请求回调 超时等 运行 注意 我无法在调试器中使用断点 因为 bug 存在于 ie8 中 并且调试器会阻止您在断点处向
  • 如何通知 AngularJS 表单已由 jQuery 外部填写?

    我在 AngularJS 中有一个页面 其中有一个包含一些字段的表单 加载该页面后 我想要一个书签 单击该书签可根据配置文件中的数据填充字段 正在使用一个 JS 文件 该文件使用 jquery 来填充表单中的数据 当我做 id val ab
  • 使用加权概率和值查找数组中的项目

    上周我正在做的一个简单程序遇到了一些问题 这里有人帮助了我 现在我遇到了另一个问题 我目前有这个代码 var findItem function desiredItem var items item rusty nail probabili
  • Vue 3:“defineProps”引用本地声明的变量

    为什么我收到警告错误消息 defineProps引用本地声明的变量 eslint vue valid define props 当我在 props 中使用自定义验证器时SFC
  • 将 Google Drive 目录中的所有文件恢复为旧版本

    最近 病毒加密了我的所有文件 不幸的是 谷歌备份和同步立即将文件的新版本 加密 上传到我的驱动器 我知道我可以将单个文件恢复到以前的版本 但我的驱动器上大约有 30 000 个文件 这意味着我无法手动恢复所有这些文件 我尝试使用 Apps
  • 在 mdn web 文档中 Element.querySelector 方法说它应该是后代,但示例显示不然

    我正在从 MDN 网络文档学习 JavaScript 我刚刚在学习Element querySelector method 据记载 它返回第一个元素 该元素是调用它的元素的后代 并且与指定的选择器组匹配 但有一个例子与这个事实相矛盾 var
  • 如果 jQuery 验证失败,JSLint 有什么用?

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Twitter-Typeahead 不提供建议

    我正在尝试使用twitter typeahead rails 我的目的是当我在 Typeahead 输入框中键入内容时 通过下拉框建议模型 User 的实例 但是 当我打字时什么也没有发生 有人看到我的代码有什么问题吗 Gemfile ge
  • AngularJS ng-重复重新渲染

    我正在使用 AngularJS 构建一个简单的应用程序 应用程序向服务器发出异步 AJAX 调用 服务器返回一个如下所示的数组 paragraphs content content one content cnt two content r
  • 将美元金额动态转换为文本以包含“美元”和“美分”一词

    我需要将输入字段中输入的美元金额动态转换为文本 我能找到的最接近的解决方案几乎可以满足我的需求 但是 我希望结果文本包含 美元 一词 并删除句子末尾带有 美分 的 点 一词 这是起始原型和当前结果 function amountToWord
  • 检测“文件下载”弹出窗口何时关闭

    我有一个网页 用 JSF 制作 其中一些链接允许用户获取 PDF 文件 当用户点击这样的链接时 会显示一个等待弹出窗口 它是一个模式面板 因为 PDF 的生成可能很长 并且一旦创建文件 IE 就会显示 文件下载 弹出窗口 建议 打开 保存
  • 使用 JS 或 Jquery 禁用浏览器窗口中的声音

    有没有办法禁用可能嵌入视频的浏览器窗口上的所有声音 我不是在寻找特定的解决方案 例如使用 js 等定位 Youtube 我需要一些通用的东西来关闭该页面的所有声音 这样如果任何视频播放它就没有声音 需要一些在页面级别关闭声音的东西 而不是通
  • 从字符串渲染 React 组件

    我在字符串中有一些 React 代码 例如 const component function App return div test div 我希望能够从浏览器内渲染该组件 例如 import React Component from re
  • 从 Angularjs 应用程序中的 iOS Webview 调用 Javascript 函数

    我的问题是 当我尝试从 UIWebView 中调用 AngularJS 应用程序中存在的 javascript 函数时 该函数无法识别 当我在典型的 html 结构中调用该函数时 该函数会按预期被识别 下面提供的示例 目标 C void v
  • 为什么 JavaScript 原型属性在新对象上未定义?

    我对 JavaScript 原型概念还很陌生 考虑以下代码 var x function func x prototype log function console log 1 var b new x 据我了解 b log 应该返回 1 因
  • 如何通过 JQuery Post 传递 Javascript 数组,以便可以通过 PHP $_POST 数组访问其所有内容?

    如何通过 JQuery Post 传递 Javascript 数组 以便可以通过 PHP POST 数组访问其所有内容 请展示一个可以实现此目的的代码示例 Thanks 如果你想传递一个 JavaScript 对象 哈希 即 PHP 中的关
  • 使用 javascript 在字符串中查找电子邮件地址

    我想做的是从字符串中提取电子邮件地址SomeName First email protected cdn cgi l email protection 这是我已经尝试过的代码 var stringToSearchIn SomeName Fi
  • 无限滚动 jQuery 和 Laravel 5 分页

    我成功从控制器返回数据 public function index posts Post with status verified gt paginate 30 return view show gt with compact posts

随机推荐

  • 使用 bash 脚本在 Info.plist 中添加/替换 URL 方案

    我想添加 替换 URL 方案Info plist使用 bash 脚本 命令创建文件 我尝试过sed命令有各种模式但没有成功 我们希望使用 Jenkins 自动生成构建 并且我们的 URL 方案可以针对各种构建进行更改 因此我们想要修改Inf
  • CMYK 2 RGB 问题

    我在将 CMYK 颜色转换为 RGB 时遇到问题 在互联网上有很多公式可以转换它 但例如当我将 CMYK 0 100 100 0 转换为 RGB 时 它得到的值是 255 0 0 但在 Adob e Photoshop 中 RGB 值是 2
  • 将列表组合成元组对 (x, y)

    我正在尝试组合通过传入的数字对sys argv 例子 python myscript py 35 12323 112 76767 36 33345 112 76890 33 68689 111 8980 我的目标是将它们变成元组中的两个集合
  • 使用 PInvoke 从 C# 读取具有“union”类型的 C 结构

    我正在尝试将用 C 构建的结构引入托管端 C 让我们假设这个结构 C 代码 typedef struct S int i union TypeA a TypeB b TypeC c uni S 现在 我创建 C 包装类 StructLayo
  • 查询 Firestore 中的特定日期

    我正在尝试查询 Firestore 中的指定日期 到目前为止我已经尝试过这段代码 let ref db collection schools doc DglhflywuybkOuCq7tGW let start new Date 2018
  • 如何在scala的specs2测试中使用jUnit的TemporaryFolder?

    我正在使用 Playframework 编写测试 我需要创建一个临时文件 RunWith classOf JUnitRunner class DiagnosticSpec extends Specification Rule val tem
  • 双前向/后向管道操作符是否有记录?

    我记得读过有关双管道运算符的内容 gt 和 Example let print a b sprintf O O a b 1 2 gt print val it string 1 2 双 向前 向后 管道运算符记录在以下列表中MSDN 上的
  • 操作内存中具有多个空字符的 C 字符串

    我需要在一块内存中搜索一串字符 但其中几个字符串的每个字符都为空分隔 如下所示 我 a m a s t r i n g 所有 都是空字符 我的问题来自于实际将其记入内存 我尝试过多种方法 例如 char str2 str2 char mal
  • 如何覆盖 app/code/core/Mage/Core/functions.php 中的 Magento 函数

    我需要重写此文件中的一个函数 应用程序 代码 核心 Mage Core functions php 问题是 它是如此核心 以至于没有与之关联的类 可能是因为 Core 甚至不是一个模块 有谁知道如何在没有类的情况下覆盖文件中的函数 任何帮助
  • 保护 AWS API 网关的安全

    我们有一个现有的应用程序 并且正在开发 AWS 中的应用程序所需的新 API 我们希望对 AWS API 启用基于角色的访问控制 而无需将用户迁移到 AWS Cognito 我们认为我们可能需要使用开发人员身份提供商和 IAM 角色 但不确
  • NFC 中的 AAR 记录:有效负载在哪里?

    根据这个答案 https stackoverflow com a 9235624 115145经测试验证 当您使用 Android Beam 推送包含 AAR 记录的 NFC 消息时 接收设备将启动MAIN LAUNCHERAAR 中指定的
  • Snakemake 声明规则以非零退出代码退出,即使使用“|| true”?

    我的 Snakemake 管道断言 每当我运行任何规则时 我的代码都会引发非零退出代码 即使我的代码在我手动运行相同的代码时返回错误代码 0 并且在 Snakemake 中运行时它可以正常工作 根据建议这个问题 https stackove
  • 如何在Linux shell脚本中将文本文件中的两行合并到同一行中

    我使用 wget 命令从 Nagios 下载了它的 html 文件 然后使用以下代码将该 html 文件转换为 Textfile html2text width 180 file html gt a txt 然后我剪切了前 10 行 因为我
  • 最长 K 顺序递增子序列

    为什么我创建了一个重复的线程 阅读后我创建了这个线程允许有 K 个例外的最长递增子序列 https stackoverflow com questions 56155854 longest increasing subsequence wi
  • 当我加入第二个表时总和不正确

    这是我第一次请求你的帮助 实际上我必须创建一个查询 并为其做了一个类似的示例 我有两张桌子 Report ReportID Date headCount Production ProdID ReportID Quantity 我的问题是使用
  • 断言某个方法仅被调用一次

    我想断言一个方法只被调用一次 我正在使用 RhinoMocks 3 5 这是我认为可行的 Test public void just once var key id of something var source MockRepositor
  • 如何在flex中绘制虚线

    经过一番搜索和阅读 Graphics 类文档后 我找不到指定线条的线条样式的方法 我的意思是这条线是实线还是虚线 有人可以帮助我吗 Thanks 无论如何 您不能仅仅通过使用 Flex 库类 当然 你也可以自己做 这是一个实现它的类 根据找
  • std::condition_variable 是第一次检查条件,还是必须等待别人通知?

    std condition variable 是第一次检查条件 还是必须等待别人通知 这是通过阅读来回答的文档 https en cppreference com w cpp thread condition variable wait 就
  • ORDER BY 子句中的 T-SQL IF 语句

    有没有办法我可以做类似的事情 sortType SELECT FROM table ORDER BY if sortType id table Id else if sortType date table Date 该语法看起来如何 谢谢
  • 使用 nextpagetoken 在 Google Apps 脚本查询中提取超过 500 个结果

    在一个有用的回应中这个帖子 https stackoverflow com questions 34398021 directory query returns only 100 users我了解到我可以一次从我的域目录中提取最多 500