首页 > 解决方案 > 取消订阅 webcal

问题描述

我想在我的网站中添加一个 ics 链接。用户可以将此网址添加到他们最喜欢的日历应用程序并查看他们即将发生的事件。

我的用户使用我的网站几个月然后离开(这是一个教育网站)。所以我的问题是:

有没有办法(也许在 ics 协议中?)自动从我的 ics url 取消订阅我的用户,以避免“终生”不必要的请求?

例如,Mac 上的 iCal 将每小时向 url 发出一个请求以获取新数据。但是一旦用户离开,就永远不会有新的数据,所以请求是没有用的。

谢谢你的帮助!

标签: calendaricalendarwebcal

解决方案


您可以要求人们取消订阅,也许可以通过一个虚拟的每日事件来使其成为可取的,上面写着“不再更新,请取消订阅”

或者

通过向请求系统返回适当的 http 返回码来强制取消订阅 - 可能是 410(已消失)而不是 404。根据其描述,410 是最合适的:“网址不再存在,条件是很可能是永久性的。” https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410

可以为每个用户提供一个 url。确保它在生命周期结束时返回 410(不仅仅是一个空文件)

接收设备不只是悄悄地取消订阅 url。通常他们会显示错误。理想情况下,人类应该取消订阅。也许一封包含有关如何退订的快速提示的电子邮件可能最适合您的情况?至少那时你已经告诉他们了。

我什至发现我自己的日历应用程序中有很多垃圾日历网址。如果我开始收到错误,我会取消订阅它们(或者如果有垃圾事件,我可能会取消订阅或“隐藏”它。

将信息传递给请求应用程序的其他方式,可能会减少服务器上的负载:

标题中的上次修改https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified https://developer.mozilla.org/en-US/docs/Web/HTTP/标头/重试后 (没有“从不”!)

您还可以在 ics 文件中包含非官方(非 RFC5545)扩展:例如:X-PUBLISHED-TTL - 订阅日历的推荐更新间隔。可以将其设为非常长的间隔。请参阅https://en.wikipedia.org/wiki/ICalendar#Calendar_extensions


推荐阅读