Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌日历访问权限_Google Apps Script_Google Api_Google Calendar Api - Fatal编程技术网

Google apps script 谷歌日历访问权限

Google apps script 谷歌日历访问权限,google-apps-script,google-api,google-calendar-api,Google Apps Script,Google Api,Google Calendar Api,我正在尝试使用Google Apps脚本创建一个脚本,该脚本将允许我确定特定日历是否设置为公共日历 我在Advanced Calendar Services文档中找到了以下内容,其中列出了用户日历列表中显示的日历。即使我只是简单地记录可变日历,我也看不到任何信息告诉我日历是否设置为public function listCalendars() { var calendars; var pageToken; do { calendars = Calendar.CalendarL

我正在尝试使用Google Apps脚本创建一个脚本,该脚本将允许我确定特定日历是否设置为公共日历

我在Advanced Calendar Services文档中找到了以下内容,其中列出了用户日历列表中显示的日历。即使我只是简单地记录可变日历,我也看不到任何信息告诉我日历是否设置为public

function listCalendars() {
  var calendars;
  var pageToken;
  do {
    calendars = Calendar.CalendarList.list({
    maxResults: 100,
    pageToken: pageToken,
  });
  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.summary, calendar.id);
  }
  } else {
    Logger.log('No calendars found.');
  }
   pageToken = calendars.nextPageToken;
  } while (pageToken);
}
函数列表日历(){
var日历;
var pageToken;
做{
日历=Calendar.CalendarList.list({
最大结果:100,
pageToken:pageToken,
});
if(calendars.items&&calendars.items.length>0){
对于(var i=0;i
我的目标是简单地返回日历是否设置为public

function listCalendars() {
  var calendars;
  var pageToken;
  do {
    calendars = Calendar.CalendarList.list({
    maxResults: 100,
    pageToken: pageToken,
  });
  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.summary, calendar.id);
  }
  } else {
    Logger.log('No calendars found.');
  }
   pageToken = calendars.nextPageToken;
  } while (pageToken);
}

谢谢你的帮助

了解日历是否为公共日历的最简单方法是尝试使用api密钥访问日历。如果日历为公共日历,您将返回信息。如果不是,您将收到“禁止访问”错误消息

如果您不喜欢错误消息,那么您可以接受您现在的请求,并在每个日历中循环请求错误消息

此响应包含一个资源列表

{
  "kind": "calendar#aclRule",
  "etag": etag,
  "id": string,
  "scope": {
    "type": string,
    "value": string
  },
  "role": string
}

Scope将告诉您默认日历(公共日历)或用户、组或域日历的类型。

谢谢您的帮助。这应该让我开始。