2016-09-04 2 views
1

Я пытаюсь добавить пользователя в некоторые календари Google через Google Apps Script. В принципе, для начала нового учителя я хочу добавить их в 5 календарей, которые у нас есть, без необходимости делать это вручную (обратите внимание, что это личные учетные записи).Как добавить других пользователей в календарь

Я хочу что-то вроде метода subscribeToCalendar, но для добавления пользователя, который не является активным, то есть me. Сценарий уже собирает свой адрес электронной почты, и у меня есть идентификаторы календаря. Я просмотрел документацию Календаря Google и не могу найти способ сделать это.

Я также нашел это в документации API календаря Google, в которой говорится о обновлении роли, например, «читателе», который я хочу, но я не знаю, как это реализовано с помощью скрипта Google Apps, так как примеры на странице Java и т.д. https://developers.google.com/google-apps/calendar/v3/reference/acl/update#examples

Я нашел этот вопрос, который я думаю, в правильном направлении, но кажется очень сложным для просто добавить пользователя в календарь: Create a POST body using Google Apps Script

кто может помочь ? Спасибо заранее. Баз

ответ

1

Вы двигаетесь в правильном направлении, вы должны использовать Advanced Calendar Service (Это должно быть enabled before use. В редакторе сценариев выберите Ресурсы> услуги Расширенный Google ... и затем включить его в Google Developers Console.)

После активации вы можете share the calendar с помощью ACL: insert, вот пример:

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]); 
    } 
} 
+0

ты звезда! Это прекрасно работает. Единственная добавленная вещь, которую я добавил, заключалась в том, что, поскольку я использую 5 календарей, есть 5 переменных calendarId (например, calendarId1, calendarId2 и т. Д. Плюс последняя строка «Calendar.Acl.insert (ресурс, calendarId1)) повторяется 5 раз, с каждой строкой, относящейся к различным переменным календаря. Большое спасибо за вашу помощь. – BazR

+0

@BazR Вы можете определить идентификаторы календаря внутри [Массив] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), то просто пропустите значения, я обновил свой ответ. – ocordova

+0

Спасибо @ocordova Не думал об этом, что делает его намного проще и чище. – BazR