Гугл Календарь

Синхронизация событий

Метод используется для получения списка событий календаря и его синхронизации при получении уведомления (вебхука) от Гугл календаря. Для управления ботом при добавлении/изменении/удалении мероприятий в Гугл календаре. Аналог метода присутствует в действии Гугл Календарь

Метод 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?