如何使用 webCal 发布日历

LaB*_*cca 2 delphi delphi-xe2 webcal

我的应用程序在运行时生成一个复杂的日历,因此任何用户都有特定日期/时间的任务,并且每个任务都有描述和一些属性。

我被要求将此日历“发布”为 webCal。我对webcal一无所知,无论如何我想知道你们中是否有人已经尝试过并可以写下他的评论或建议。

其中一个问题是“如何识别用户”?由于我有一个多用户日历,如何为每个用户发布单独的日历?

我想到一种连续运行的Delphi服务应用程序,发布日历。

Mar*_*ijn 5

这取决于您的用户是否需要对其日历进行写入访问。

\n\n

我曾经编写过一个简单的(命令行)实用程序,用于导出单个 (.ics) 日历文件。如果发生更改,它会将导出的 .ics 文件上传到 Web 服务器,日历客户端(例如 Google Calendar、iCalendar、Sunbird、Outlook)可以在其中获取该文件。通过将 .ics 文件上传到每个用户的不同文件夹,可以轻松完成针对不同用户的发布。

\n\n

接下来,我安排该实用程序定期运行。当然,您可以让 Delphi 服务定期执行此操作。

\n\n

许多日历客户端能够理解http://URL 以及webdav://理解URL。可以使用常规 HTTP 身份验证方案之一来安排身份验证。当然,您\xe2\x80\x99 会想要使用 SSL 来保护事物。

\n\n

这种方法的唯一限制是生成的日历实际上是只读的。

\n\n

如果您想提供写访问权限,您\xe2\x80\x99将需要一个真正的Webcal服务器。真正的 webcal 实现意味着在服务器上支持webdav协议(它本身是 HTTP 协议的扩展),并从 Delphi 服务中获取更改。或者,或者在 Delphi 中编写 WebDav/CalDav 服务器(例如,通过扩展使用 Indy TIdWebdav 组件)TIdHTTPServer,因为 Indy 不\xe2\x80\x99t 支持 TIdWebdavServer 组件)。

\n\n

OnCommandOther根据WebDAV 规范,您\xe2\x80\x99d 必须自己处理所有特定于 webdav 的命令(使用事件) 。这个关于编写WebDAV服务器的问题可能会提供一些指导......

\n\n

或者,您可以使用第 3 方 webdav 服务器,并从 Delphi 服务中获取任何更改。

\n