目录查询仅返回100个用户

时间:2015-12-21 14:30:05

标签: google-apps-script google-admin-sdk

我从here借用了代码,将我的Google域中的目录数据下载到电子表格中。我在代码中所做的全部改变是用OpenByID替换OpenByURL,因为参数无效错误。现在它可以工作,除了它只返回我的域中的前100个用户。我总共有大约1000个用户,也许还有一些。我可以全部拉出来吗?如果没有,我可以至少将限额提高到100以上吗?和/或如何将查询限制在特定的组织单位?

我的完整代码如下:

function writeToSpreadsheet(){
  var values = [];
  var users = AdminDirectory.Users.list({domain:'klht.org'}).users; //example: ignitesynergy.com
  for (var i=0; i<users.length; i++){
    values.push([users[i].name.fullName, users[i].primaryEmail]); //Look in the docs or use auto complete to see what you can access  
  }
  var spreadsheetID = '1JLDD2wm0_udmTn9ZHvdKhL_Ok3SvKYFqkBeiA1GdnYc';
  SpreadsheetApp.openById(spreadsheetID).getSheets()[0].getRange(1, 1, values.length, values[0].length).setValues(values);
}

//Red indicates the places you need to use your info

1 个答案:

答案 0 :(得分:3)

您可以下拉的最大值是500 - maxResults

同时在列表调用中添加orgUnitPath作为查询字段的一部分:

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

返回的对象的一部分将是nextPageToken,您可以将其添加到后续查询或查询中,直到您拥有所有用户

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