Есть ли способ получить веб-хук, когда событие начинается или немного раньше начала события?
Google Calendar API позволяет создавать напоминания о событиях. Можно ли получить веб-хук при активации или запуске события?
Например, если я создаю событие для «15 декабря 2020 г., 15:45 +0530», могу ли я получить веб-перехватчик именно в это время или за несколько минут до этого?
Google может использовать такой веб-хук для отправки напоминаний по электронной почте или сигналов тревоги. Я хочу использовать это для отправки уведомлений в моем приложении.
Единственные способы, которые я могу придумать: 1. Использовать созданный адрес электронной почты, установить напоминание по электронной почте и следить за приходом электронных писем. Но это может иметь задержки. 2. Опрос календаря, скажем, каждые 15 минут, и если событие произойдет в течение следующих 15 минут, подождите / спите, пока событие не начнет отправлять уведомление. Это было бы точным, но и ресурсоемким.
В настоящее время в 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 не существует. Принятие этого ответа!
Вы можете легко сделать это с помощью IPaaS
С помощью апплета IFTTT Google Calendar & Webhook, IF=> Начинается любое событие (вы можете установить количество минут/часов) Затем => опубликовать веб-хуки
Вы можете установить его;
Однако синхронизация триггера не так точна.
Кроме того, вы можете использовать Integromat Mailhook для работы с напоминанием.
У вас также есть такие услуги, как;
для преобразования писем в вебхуки.
для создания расписания публикации вебхуков.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Это не дает ответа на вопрос. Когда у вас будет достаточная репутация , вы сможете комментировать любой пост ; вместо этого давайте ответы, не требующие пояснений от спрашивающего . - Из отзыва
@DaImTo Push-уведомления предназначены для изменений в ресурсах. Какой атрибут события изменяется, если оно началось? Я не вижу такого атрибута. Вот документ, который я просматриваю: developments.google.com/calendar/v3/reference/events