Гугл Календарь
Синхронизация событий
Метод используется для получения списка событий календаря и его синхронизации при получении уведомления (вебхука) от Гугл календаря. Для управления ботом при добавлении/изменении/удалении мероприятий в Гугл календаре. Аналог метода присутствует в действии Гугл Календарь
Метод GET, POST
/gcalendar/sync
Параметры запроса
{
"client_email": string - client_email из JSON файла сервисного аккаунта Гугл, обязательный
"private_key": string - private_key из JSON файла сервисного аккаунта Гугл, обязательный
"calendarId": string - ID Гугл календаря, обязательный
"syncToken": string - токен для синхронизации получаемых событий, необязательный
"showDeleted": boolean - включать в получаемый список событий календаря удаленные события, по-умолчанию true, необязательный
"singleEvents": boolean - правило обработки повторяющихся событий. Если true, то в ответе все повторяющиеся события будут представлены отдельно, если false, то повторяющиеся события будут представлены один раз с параметром recurrence, которое будет содержать частоту повторения события, по-умолчанию true, необязательный
}
Ответ
{
object, содержит список событий items, код синхронизации nextSyncToken для вывода в следующем запросе только тех событий, которые были изменены или удалены с момента последней синхронизации, другие параметры.
}
Пример
// В сценарии действий после приема вебхука от Гугл календаря, нужно обработать полученные данные в действии JS код. Также в сценарии действий приема вебхука от Гугл календаря необходимо заполнить переменную _response значение OK.
// Если данные получены в переменную result
var result = JSON.parse(varstore['result']);
const events = result.items;
for (const event of events) {
if (event.status === 'cancelled') {
// Обрабатываете удаленные события
// console.log(`Событие удалено: ID ${event.id}`);
} else {
// Обрабатываете измененные события
// console.log(`Событие изменено: ${event.summary || 'Без названия'}, ID: ${event.id}`);
}
}
// Сохраните новый syncToken для следующей синхронизации
varstore['newSyncToken'] = result.nextSyncToken;
Last updated
Was this helpful?