gpt4 book ai didi

javascript - 如何使用 pagetoken 谷歌应用程序脚本

转载 作者:行者123 更新时间:2023-11-28 18:02:58 26 4
gpt4 key购买 nike

我正在使用 Google Apps 脚本编写我们的 Google Apps 实例中所有 super 管理员和委派管理员的列表。

我的脚本工作正常,但它将结果限制为 500 个用户,因为这是 google 的限制,google 建议使用 pageToken,但我不确定如何使用。

任何人都可以帮助我了解如何在以下脚本中使用 PageToken:

function getAdmins(){
var fileArray = [["First Name", "Last Name", "Email", "Admin Role"]]

var optionalArgs = {"customer":"my_customer", maxResults: 500}
var allUsers = AdminDirectory.Users.list(optionalArgs).users

for (i=0; i<allUsers.length; i++){
userDetails = allUsers[i]
var fName = userDetails.name.givenName
var lName = userDetails.name.familyName
var pEmail = userDetails.primaryEmail
var Admin = userDetails.isAdmin
var dAdmin = userDetails.isDelegatedAdmin

if (Admin === true) {
Admin = "Super Administrator"
}
else if (dAdmin === true){
Admin = "Delegated Administrator"
}
Logger.log(Admin)

}
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Admin Users")
fileArray.push([fName, lName, pEmail,Admin]);

Logger.log(fileArray)



sheet.getRange(1, 1, fileArray.length, 4).setValues(fileArray)


}}

最佳答案

要了解 pageToken,您需要了解返回值(或响应)

 AdminDirectory.Users.list(optionalArgs)

该函数返回 reponse of the format :

{
"kind": "admin#directory#users",
"etag": etag,
"users": [
users Resource
],
"nextPageToken": string
}

要访问用户信息,您可以像这样使用“users”键

var allUsers = AdminDirectory.Users.list(optionalArgs).users
//below the same is written in two seperate lines
var page = AdminDirectory.Users.list(optionalArgs)
var allUsers = page.users

正如您从响应对象中看到的,您还有 nextPageToken 键,它定义响应中的下一页是什么,您可以像这样获取此 nextPageToken:

pageToken = page.nextPageToken;

然后将 pageToken 传递给对 AdminDirectory 的新调用,如下所示:

var optionalArgs = {"customer":"my_customer", maxResults: 500, pageToken:   pageToken}  
page = AdminDirectory.Users.list(optionalArgs)

这将检索搜索中的下一页以及搜索中下一页的 nextPageToken(如果有)。您进行递归调用,直到不再有 pageToken。

下面的代码应该完全做到这一点,并且是通过合并 example code on google developer page 中的代码制成的。以及@GlodyArora 上面编写的代码。从字面上看,只是添加了一个 do while 循环,如示例代码中所述。

function getAdmins(){
var fileArray = [["First Name", "Last Name", "Email", "Admin Role"]]
var pageToken, page;
do {
var optionalArgs = {"customer":"my_customer", maxResults: 500, pageToken: pageToken}
page = AdminDirectory.Users.list(optionalArgs)
var allUsers = page.users

for (i=0; i<allUsers.length; i++){
userDetails = allUsers[i]
var fName = userDetails.name.givenName
var lName = userDetails.name.familyName
var pEmail = userDetails.primaryEmail
var Admin = userDetails.isAdmin
var dAdmin = userDetails.isDelegatedAdmin

if (Admin === true) {
Admin = "Super Administrator"
}else if (dAdmin === true){
Admin = "Delegated Administrator"
}
Logger.log(Admin)
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Admin Users")
fileArray.push([fName, lName, pEmail,Admin]);
}
pageToken = page.nextPageToken;
}
while(pageToken);
Logger.log(fileArray)
sheet.getRange(1, 1, fileArray.length, 4).setValues(fileArray)
}

希望它能帮助并澄清问题!

关于javascript - 如何使用 pagetoken 谷歌应用程序脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com