Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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 Calendar Api - Fatal编程技术网

Google apps script 如何将其他用户添加到日历

Google apps script 如何将其他用户添加到日历,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,我正试图通过谷歌应用程序脚本以编程方式将用户添加到一些谷歌日历中。基本上,当一个新老师开始工作时,我想将他们添加到我们的5个日历中,而不必手动操作(注意,这些是个人帐户) 我想要类似subscribeToCalendar方法的东西,但要添加一个不是活动用户的用户,即我。脚本已经收集了他们的电子邮件地址,我有日历ID。我查阅了谷歌日历文档,找不到任何方法来实现这一点 我在Google Calendar API文档中也发现了这一点,该文档讨论了将角色更新为例如“reader”,这是我想要的,但我不知

我正试图通过谷歌应用程序脚本以编程方式将用户添加到一些谷歌日历中。基本上,当一个新老师开始工作时,我想将他们添加到我们的5个日历中,而不必手动操作(注意,这些是个人帐户)

我想要类似subscribeToCalendar方法的东西,但要添加一个不是活动用户的用户,即我。脚本已经收集了他们的电子邮件地址,我有日历ID。我查阅了谷歌日历文档,找不到任何方法来实现这一点

我在Google Calendar API文档中也发现了这一点,该文档讨论了将角色更新为例如“reader”,这是我想要的,但我不知道如何使用Google Apps脚本实现这一点,因为页面上的示例是Java等。

我发现了这个问题,我认为这个问题的方向是正确的,但仅仅在日历中添加一个用户就显得非常复杂:

有人能帮忙吗? 提前谢谢。
Baz

如果方向正确,则需要使用(必须如此。在脚本编辑器中选择Resources>Advanced Google services…,然后在Google Developers控制台中启用。)

启用后,您可以使用以下示例:

function myFunction() {

  var calendarIds = ['CAL_ID_1','CAL_ID_2','CAL_ID_3','CAL_ID_4','CAL_ID_5'];
  var userEmail = 'USER_EMAIL';
  var resource = {
      'scope': {
        'type': 'user',
        'value': userEmail
      },
      'role': 'reader'
    };

  for (var i = 0; i < calendarIds.length; i++) {
    Calendar.Acl.insert(resource, calendarIds[i]);
  }
}
函数myFunction(){
var calendarIds=['CAL_ID_1'、'CAL_ID_2'、'CAL_ID_3'、'CAL_ID_4'、'CAL_ID_5'];
var userEmail='USER_EMAIL';
变量资源={
“范围”:{
“类型”:“用户”,
“值”:用户电子邮件
},
“角色”:“读者”
};
对于(var i=0;i
你是个明星!这很好用。我添加的唯一额外内容是,当我共享5个日历时,有5个calendarId变量(例如calendarId1、calendarId2等,加上最后一行“Calendar.Acl.insert(resource,calendarId1));重复了5次,每一行都指向不同的日历变量。非常感谢您的帮助。@BazR您可以在一个循环中定义日历ID,然后通过值,我更新了我的答案。感谢@ocordova没有想到这一点,这使代码更简单、更清晰。