Загрузить все псевдонимы пользователей в электронную таблицу Google - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь перечислить все псевдонимы пользователей в нашей сети.Тем не менее, у меня немного проблем.Я работаю с небольшим количеством готового кода здесь.Я знаю, что псевдоним - это массив, но доступ к нему для каждого пользователя, а затем перечисление только псевдонимов заставляет меня видеть значение double.Любая помощь или советы очень ценятся!

  function AliasDomainUsersList() {

  var users_alias = [];
  var options_alias = {
    domain: "northstarmoving.com",     // Google Apps domain name
    customer: "my_customer",
    maxResults: 100,
    projection: "full",      // Fetch basic details of users
    viewType: "domain_public",
    orderBy: "email"          // Sort results by users
  }

  do {
    var response = AdminDirectory.Users.list(options_alias);
    response.users.forEach(function(user) {
      users_alias.push([user.name.fullName, user.primaryEmail]);
    });

    // For domains with many users, the results are paged
    if (response.nextPageToken) {
      options_alias.pageToken = response.nextPageToken;
    }
  } while (response.nextPageToken);

  // Insert data in a spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Users-Aliases") || ss.insertSheet("Users-Aliases", 1);
  sheet.getRange(1,1,users_alias.length, users_alias[0].length).setValues(users_alias);

}

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

удалось выработать решение (с некоторой помощью). Вот оно:

  function getDomainUsersList() {

  var users = [];
  var options = {
    domain: "northstarmoving.com", // Google Apps domain name
    customer: "my_customer",
    maxResults: 500,
    projection: "full",      // Fetch details of users
    viewType: "domain_public",
    orderBy: "email"          // Sort results by users
  }

  do {
    var response = AdminDirectory.Users.list(options);
    response.users.forEach(function(user) {
      users.push([user.name.fullName, user.primaryEmail]);
    });

    // For domains with many users, the results are paged
    if (response.nextPageToken) {
      options.pageToken = response.nextPageToken;
    }
  } while (response.nextPageToken);

  // Insert data in a spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Users") || ss.insertSheet("Users", 1);
  sheet.getRange(1,1,users.length, users[0].length).setValues(users);

}
0 голосов
/ 16 марта 2019

Я думаю, что-то подобное может сработать. Я не проверял это, потому что я единственный человек в моей учетной записи.

function AliasDomainUsersList() {
  var users_alias = [];
  var options_alias = {
    domain: "northstarmoving.com",     // Google Apps domain name
    customer: "my_customer",
    maxResults: 100,
    projection: "full",      // Fetch basic details of users
    viewType: "domain_public",
    orderBy: "email"          // Sort results by users
  }

  do {
    var response = AdminDirectory.Users.list(options_alias);
    for(var i=0;i<response.users.length;i++) {//you will probably want to do this your way. 
      users_alias.push([response.users[i].name,response.users[i].primaryEmail]);
    }
    // For domains with many users, the results are paged
    if (response.nextPageToken) {
      options_alias.pageToken = response.nextPageToken;
    }
  } while (response.nextPageToken);

  // Insert data in a spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Users-Aliases") || ss.insertSheet("Users-Aliases", 1);
  sheet.getRange(1,1,users_alias.length, users_alias[0].length).setValues(users_alias);
  var sheet2=ss.getSheetByName('AnotherSheet')
  var rg2=sheet2.getRange(1,1,users_alias.length,1);
  var vA2=rg2.getValues();
  for(var i=0;i<vA2.length;i++) {
    vA2[i][0]=users_alias[i][1];
  }
  rg2.setValues(vA2);
}
...