Веб-перехватчики для запуска событий в Google Calendar API

Есть ли способ получить веб-хук, когда событие начинается или немного раньше начала события?

Google Calendar API позволяет создавать напоминания о событиях. Можно ли получить веб-хук при активации или запуске события?

Например, если я создаю событие для «15 декабря 2020 г., 15:45 +0530», могу ли я получить веб-перехватчик именно в это время или за несколько минут до этого?

Google может использовать такой веб-хук для отправки напоминаний по электронной почте или сигналов тревоги. Я хочу использовать это для отправки уведомлений в моем приложении.

@DaImTo Push-уведомления предназначены для изменений в ресурсах. Какой атрибут события изменяется, если оно началось? Я не вижу такого атрибута. Вот документ, который я просматриваю: developments.google.com/calendar/v3/reference/events

rajeev 16.12.2020 19:26

Единственные способы, которые я могу придумать: 1. Использовать созданный адрес электронной почты, установить напоминание по электронной почте и следить за приходом электронных писем. Но это может иметь задержки. 2. Опрос календаря, скажем, каждые 15 минут, и если событие произойдет в течение следующих 15 минут, подождите / спите, пока событие не начнет отправлять уведомление. Это было бы точным, но и ресурсоемким.

rajeev 16.12.2020 19:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
1 847
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В настоящее время в Google Issue Tracker открыт запрос функции, чтобы добавить API для напоминаний для Календаря.

Что вы можете сделать в этой ситуации, так это отметить проблему здесь и в конечном итоге добавить комментарий.

Обходной путь

Вы можете создать сценарий с помощью Apps Script, который будет получать все события определенного дня и проверять время их начала.

function getEvents() {
    let today = new Date();
    let calendar = CalendarApp.getCalendarById(id);
    let events = calendar.getEventsForDay(today);
    let startTime = today.getHours();
    for (let i = 0; i < events.length; i++) {
        if (events[0].getStartTime() <= startTime) {
            // send email, notification etc;
        }
    }
}

После этого вы можете добавить устанавливаемый триггер, управляемый временем, который может запускаться каждые 15 минут, например, для запуска выполнения вышеуказанной функции.

function createTrigger() {
  ScriptApp.newTrigger('getEvents')
      .timeBased()
      .everyMinutes(15)
      .create();
}

Примечание

Пожалуйста, имейте в виду, что вы можете настроить скрипт и триггер таким образом, чтобы они соответствовали вашим потребностям.

Ссылка

Это выглядит очень близко к решению, которое я опубликовал. Спасибо, что подтвердили, что такого API не существует. Принятие этого ответа!

rajeev 17.12.2020 13:22

Вы можете легко сделать это с помощью IPaaS

С помощью апплета IFTTT Google Calendar & Webhook, IF=> Начинается любое событие (вы можете установить количество минут/часов) Затем => опубликовать веб-хуки

Вы можете установить его;

  • заголовок
  • Описание
  • Расположение
  • Время начала
  • Время окончания
  • URL события
  • VideoCallURl в дополнительных заголовках, параметре URL и/или теле JSON.

Однако синхронизация триггера не так точна.

Кроме того, вы можете использовать Integromat Mailhook для работы с напоминанием.

  1. Установите параметр пересылки в вашем клиенте Gmail для уведомления о напоминании, чтобы переслать его на адрес электронной почты, предоставленный Integromat.
  2. В соответствии с содержимым письма сделайте HTTP-запрос к вашей конечной точке.

У вас также есть такие услуги, как;

https://mailhook.app/

для преобразования писем в вебхуки.

https://cronhooks.io/

для создания расписания публикации вебхуков.

Другие вопросы по теме

Google G Suite (Workspace) Как отключить пароль на устройстве
Надстройка календаря Google для решений для конференций, использующая альтернативные среды выполнения, не отображается в раскрывающемся списке
Получение учетных записей службы не может приглашать посетителей без делегирования полномочий на уровне домена, даже если делегирование на уровне домена уже предоставлено
Невозможно перечислить ВСЕ события за данный день с помощью GCSA
Не удалось создать событие календаря Google с участниками
Как я могу использовать аутентификацию веб-приложения (данные локального хранилища/файлы cookie), чтобы Laravel знал аутентификацию пользователя
Отсутствует время окончания – вызов API Календаря Google для вставки события
Использование функции onEdit Создание события календаря
API календаря Google: как добавить бесплатное разрешение в календарь пользователя?
Добавьте календарь Google в React Js