Отписаться от вебкала - PullRequest
0 голосов
/ 03 марта 2020

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

Мои пользователи используют мой веб-сайт в течение нескольких месяцев, а затем уходят (это образовательный веб-сайт). Итак, мой вопрос:

Есть ли способ (возможно, в протоколе ics?) Автоматически отписать моих пользователей от моего URL ics, чтобы избежать ненужных запросов «на всю жизнь»?

Например, iCal на Ma c каждый час будет делать запрос к URL для получения новых данных. Но как только пользователь уйдет, новых данных никогда не будет, поэтому запросы бесполезны.

Спасибо за помощь!

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете либо попросить людей отказаться от подписки, сделать это желательно, возможно, фиктивным ежедневным событием, которое говорит: «Больше не обновляйтесь, пожалуйста, отмените подписку»

ИЛИ

принудительно отмените подписку, вернув соответствующий http возвращает код запрашивающей системе - вероятно, 410 (ушел), а не 404. 410, согласно его описанию, является наиболее подходящим: «URL больше не существует, и условие, вероятно, будет постоянным». https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410

URL может предлагаться для пользователя. Убедитесь, что он возвращает 410 в конце срока службы (не просто пустой файл)

Принимающие устройства не просто тихо отписываются от URL. Обычно они показывают ошибку. В идеале человек должен отписаться. Возможно, электронное письмо с краткими советами о том, как отписаться, может быть лучшим в вашей ситуации? по крайней мере, тогда вы сказали им.

Я считаю, что даже для себя в моем приложении-календаре много URL календарей мусора. Если бы я начал получать ошибки, я отменил бы их подписку (или, если бы были события с мусором, я мог бы отменить или «скрыть» ее.

Другие способы передачи информации запрашивающему приложению, которые могут снизить нагрузку на ваш сервер:

Последнее изменение в шапке https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After (нет 'никогда'!)

Есть также неофициальные (не RFC5545) расширения, которые можно включить в файл ics: например: X-PUBLISHED-TTL - рекомендуемый интервал обновления для подписки на календарь. Можно сделать этот интервал действительно длинным. См. https://en.wikipedia.org/wiki/ICalendar#Calendar_extensions

...