[英]Google App Script pageToken to save attachments to Google Drive
[英]how to use pagetoken google app script
我正在使用Google Apps脚本在Google Apps实例中编写所有超级管理员和委派管理员的列表。
我的脚本工作正常,但是将结果限制为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)
{
"kind": "admin#directory#users",
"etag": etag,
"users": [
users Resource
],
"nextPageToken": string
}
要访问用户信息,您可以像这样使用“用户”键
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为止。
下面的代码应该做到这一点,它是通过合并Google开发人员页面上的示例代码中的代码与@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)
}
希望它能帮助和澄清问题!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.