我有一个用作 webcal 服务器的 php 应用程序,我希望用户可以选择使用他们的日历应用程序,或者直接将 webcal://example.ics 导入到谷歌或 Outlook 或 Office 365 日历,无需用户通过设置导入。试图找到关于这些的文件,但找不到。
问问题
213 次
1 回答
0
YZY,您无法控制用户日历应用程序仅导入。由接收端 - 用户应用程序决定在收到时如何处理 ics 文件或 url。例如,在我的桌面浏览器中,我将 .ics url/文件的默认应用程序设置为 notepad++,而不是我的日历应用程序。您无法覆盖它。
其他应用程序(例如智能手机或桌面上的电子邮件应用程序)如何处理它取决于用户控制的设置。EG:在 Outlook 中,用户可能已取消勾选“自动处理会议请求”
ics url/file 提供者的唯一控制是确保按照最新规范正确指定文件/url(注意 RFC5546 更新 RFC5545,需要同时阅读两者)。简要地:
- https协议是标准的(webcal是非官方的苹果。见https://icalendar.org/iCalendar-RFC-5545/1-introduction.html , https://en.wikipedia.org/wiki/ICalendar。)
- 根据 RFC5546 和 RFC5545 中给出的示例,后缀为“.ics”
- mime 内容类型是 text/calendar https://www.iana.org/assignments/media-types/text/calendar和https://datatracker.ietf.org/doc/html/rfc5545#section-8.1
- 必须使用适当的 METHOD:PUBLISH 适用于可订阅的 URL(在 URL 中显示为单独的日历)或 REQUEST(用于电子邮件中的会议请求等)请参阅https://datatracker.ietf.org/doc/html /rfc5545#section-3.7.2和 https://datatracker.ietf.org/doc/html/rfc5546#section-7.2
我喜欢区分“导入”和“订阅”:
- 在我看来,导入是将一个事件(或多个事件)从 .ics 文件导入到现有的选定日历中 - 例如(但不仅如此):使用 METHOD:REQUEST 时。
- 订阅用于更新的 icalendar 提要,因此通过 url 订阅或添加日历到一个日历应用程序是实用的。这种 url 需要可公开访问(尽管它可能会被不寻常的 url 掩盖)
人们可以下载一个可订阅的 .ics 并“导入”它,但这样一来,在那个时间点上就只会有那个冻结的事件,它永远不会更新。
总之,您可以做的最好的事情是正确提供 url 并提供一些链接到有关如何订阅的信息,以防用户不熟悉订阅
于 2021-06-14T06:23:21.327 回答