AdminDirectory.Resources.Calendars.list和pageToken

时间:2017-08-23 20:25:23

标签: google-apps-script calendar

我一直试图整理一个简单的谷歌应用程序脚本来生成我们所有日历资源的列表(我有其他想法,一旦我获取数据该怎么做)和无论出于何种原因,当我尝试标准做的同时,页面标记似乎无限增加。我写了很多类似的脚本,但这是我第一次使用AdminDirectory.Resources.Calendars.list,据我所知,这是一个没有文档的bug(或者我正在做的有些不对劲而且没有发现它。)

这是一个例子。我是超级管理员,所以它使用我的凭据,它只是连续循环相同的数据。

function listAllCalendars() {
var calendars, pageToken;
do {
  calendars = AdminDirectory.Resources.Calendars.list("my_customer");
  if (calendars.items && calendars.items.length > 0) {
    for (var i = 0; i < calendars.items.length; i++) {
      var calendar = calendars.items[i];
      Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription);
    }
  } else {
    Logger.log('No calendars found.');
  }
  pageToken = calendars.nextPageToken;
} while (pageToken);
}

这是另一个例子,没有做到。这将返回100个结果,只返回100个结果(我已经为maxResults尝试了几个不同的值,但是它将返回100个结果)。

function getAllCalendars(){
var calendars = AdminDirectory.Resources.Calendars.list("my_customer");
Logger.log(calendars.items.length);
  if (calendars.items && calendars.items.length > 0) {
    for (var i = 0; i < calendars.items.length; i++) {
      var calendar = calendars.items[i];
      Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription);
    }
  } else {
    Logger.log('No calendars found.');
  }
}

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在Apps脚本中,日历列表方法采用以下对象:

list( String customer,Object optionalArgs

字符串客户将是您的域名或my_customer。

对于 optionalArgs ,您可以指定maxResults和pageToken。

作为list方法的一部分,您缺少可选参数。

我更新了您的代码以包含可选参数。它现在应该工作。

希望这会有所帮助:-)

function listAllCalendars() {

var calendars, pageToken;

do {

  var arguments = {
      maxResults: 200,
      pageToken: pageToken
    }; 
  calendars = AdminDirectory.Resources.Calendars.list("my_customer",arguments);
  if (calendars.items && calendars.items.length > 0) {
    for (var i = 0; i < calendars.items.length; i++) {
      var calendar = calendars.items[i];
      Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription);       
    }
  } else {
    Logger.log('No calendars found.');
  }
  pageToken = calendars.nextPageToken;
} while (pageToken);
}