Delphi 如何使用webCal发布日历

Delphi 如何使用webCal发布日历,delphi,delphi-xe2,webcal,Delphi,Delphi Xe2,Webcal,我的应用程序在运行时生成一个复杂的日历,因此任何用户都有特定日期/时间的任务,并且每个任务都有一个描述+一些属性 我被要求以webCal的形式“发布”此日历。我对webcal一无所知,不管怎样,我想知道你们中是否有人已经尝试过了,并且可以写下他的评论或建议 一个问题是“如何识别用户”?由于我有一个多用户日历,如何为每个用户发布单独的日历 我认为这是一种持续运行的Delphi服务应用程序,它可以发布日历。这取决于用户是否需要对日历进行写访问 我曾经编写过一个简单的(命令行)实用程序,可以导出单个(

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

我被要求以webCal的形式“发布”此日历。我对webcal一无所知,不管怎样,我想知道你们中是否有人已经尝试过了,并且可以写下他的评论或建议

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


我认为这是一种持续运行的Delphi服务应用程序,它可以发布日历。

这取决于用户是否需要对日历进行写访问

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

接下来,我计划定期运行这个实用程序。当然,您可以让您的Delphi服务定期这样做

许多日历客户端理解
http://
url以及
webdav://
url。可以使用常规HTTP身份验证方案之一安排身份验证。当然,您会希望使用SSL来保护东西

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

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

您必须自己处理所有webdav特定的命令(使用
OnCommandOther
事件),根据。这可能会提供一些提示


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

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

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

接下来,我计划定期运行这个实用程序。当然,您可以让您的Delphi服务定期这样做

许多日历客户端理解
http://
url以及
webdav://
url。可以使用常规HTTP身份验证方案之一安排身份验证。当然,您会希望使用SSL来保护东西

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

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

您必须自己处理所有webdav特定的命令(使用
OnCommandOther
事件),根据。这可能会提供一些提示


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

您的应用程序将在哪里发布这些日历?它应该在线访问,还是仅在网络中访问?在线,最好有一些保护(用户身份验证),您的应用程序将在哪里发布这些日历?它应该在线访问,还是仅仅在网络中访问?在线,理想情况下带有一些保护(用户身份验证)。感谢您的回复,因此我必须编写一个支持wbdav协议的Web服务器。你用过印地吗?你能发布一个示例程序吗?我对发布服务器和与服务器交互的客户机感兴趣。谷歌返回很多没有答案的问题,这将是第一个例子@user193655:不,我只导出了一个(只读)日历文件,我使用FTP上传了它;所以我不需要编写Webdav服务器。谢谢,你能更好地解释一下你在哪里更新的吗?你是怎么出版的?您正在使用现有服务器吗?我对此一无所知,但在你发表评论之后,我觉得我的解决方案已经很接近了。我有一个ical文件,但是如何“用ftp”发布它呢?请你写一篇关于如何从iCal文件传递到工作的webdav服务器的“for dummies”一步一步的描述好吗?谢谢你的回复,所以我必须写一个支持wbdav协议的Web服务器。你用过印地吗?你能发布一个示例程序吗?我对发布服务器和与服务器交互的客户机感兴趣。谷歌返回很多没有答案的问题,这将是第一个例子@user193655:不,我只导出了一个(只读)日历文件,我使用FTP上传了它;所以我不需要编写Webdav服务器。谢谢,你能更好地解释一下你在哪里更新的吗?你是怎么出版的?您正在使用现有服务器吗?我对此一无所知,但在你发表评论之后,我觉得我的解决方案已经很接近了。我有一个ical文件,但是如何“用ftp”发布它呢?请您写一篇“针对傻瓜”的分步描述,说明如何从iCal文件传递到正在工作的webdav服务器?