calendar - 取消订阅 webcal
问题描述
我想在我的网站中添加一个 ics 链接。用户可以将此网址添加到他们最喜欢的日历应用程序并查看他们即将发生的事件。
我的用户使用我的网站几个月然后离开(这是一个教育网站)。所以我的问题是:
有没有办法(也许在 ics 协议中?)自动从我的 ics url 取消订阅我的用户,以避免“终生”不必要的请求?
例如,Mac 上的 iCal 将每小时向 url 发出一个请求以获取新数据。但是一旦用户离开,就永远不会有新的数据,所以请求是没有用的。
谢谢你的帮助!
解决方案
您可以要求人们取消订阅,也许可以通过一个虚拟的每日事件来使其成为可取的,上面写着“不再更新,请取消订阅”
或者
通过向请求系统返回适当的 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
推荐阅读
- pyqt5 - QListWidget为空时如何设置占位符文本居中?
- angular - 如何避免 RouterLink 删除尾随反斜杠
- php - 美化 PHP 和 HTML 语句的混合
- sdk - 在 DM 脚本线程中阻塞 sdk 包装函数
- rust - 如何将 rust ndarray 写入 HDF5 数据集?
- pyqt5 - 如何检测在 PyQt5 中按下了动态添加的按钮之一?
- docker - 无法创建 GCP Cloud Shell 自定义映像
- postman - 使用日期范围运行 newman?
- php - 在 ECS wordpress 上挂载 EFS 的位置?
- php - Laravel 类 App\Repositories\FirebaseUserRepository 未找到