Инструменты:
Я делаю небольшую систему, которая читает события из календаря каждые 5 минут и отображает их на веб-странице. Я достигаю этого, автоматически обновляя страницу каждые 5 минут <meta http-equiv="refresh" content="10">
Когда страница загружается, она вызывает API для получения новейших событий.
Я выбрал частоту автоматического обновления, потому что я не нашел никакой возможности / настройки, чтобы календарь передавал данные на мою веб-страницу при создании нового события. Это было бы лучше, потому что тогда веб-страница не должна обновляться каждые 5 минут.
Поэтому мой вопрос: может ли календарь Office 365 передавать данные / генерировать сигнал на мою веб-страницу, чтобы он мог обновляться только тогда, когда в календаре появилось новое событие? Если нет, есть ли другой способ добиться этого?
Спасибо за ваше время
Другой выбор заключается в использовании API REST уведомлений, API можно использовать для подписки на изменения в вашем календаре, почтовом ящике и контактах. Вы можете получать уведомления для коллекции сообщений, событий или контактов сущностей верхнего уровня, в следующем примере показано, как подписаться на новые события:
POST https://outlook.office.com/api/v2.0/me/subscriptions HTTP/1.1
Content-Type: application/json
{
@odata.type:"#Microsoft.OutlookServices.PushSubscription",
Resource: "https://outlook.office.com/api/v2.0/me/events",
NotificationURL: "https://mywebhook.azurewebsites.net/api/send/myNotifyClient",
ChangeType: "Created",
ClientState: "c75831bd-fad3-4191-9a66-280a48528679"}
Когда происходит событие запуска, Office 365 отправляет уведомление через веб-крючок на URL-адрес обратного вызова. Ваше приложение, в свою очередь, выполняет действия в соответствии с вашей бизнес-логикой, например, обновляет локальный кэш, соответствующие представления клиентов или серверную систему при изменениях.
Других решений пока нет …