9

我需要在 Ruby(准确地说是 Rails)应用程序中使用 CalDAV 在日历服务器上创建事件。我查看了一些不同的库并进行了一些谷歌搜索。

我查看了 ri-cal ( http://ri-cal.rubyforge.org/rdoc/ ) 但不确定它是否支持向服务器发送数据,或者我是否必须自己这样做,

这看起来很有希望http://www.local-guru.net/blog/pages/rubycaldav,但它说它是 alpha 软件,我需要一些稳定的东西。

做这个的最好方式是什么?是否有任何库已经这样做了,我需要形成自己的 HTTP 请求吗?

任何关于该主题的建议都值得赞赏

4

4 回答 4

8

我最终使用了 http://www.local-guru.net/blog/pages/rubycaldav上的库

我必须使其与 SSL 一起使用,并正确使用 UUID 库,正确格式化日期并处理全天事件。因为我只需要创建和销毁事件,这就是我更新的全部内容。我计划在我有时间的时候做更多的事情。

我的更新代码可以在这里找到https://github.com/loosecannon93/ruby-caldav

我遇到的问题是提供格式不正确的日期,并且缺少 UUID。

GitHub上的caldavtest.rb文件是我以前工作的

我遇到的另一个复杂情况是 Zimbra(服务器)有 2 个路径,一个用于只读 ICS 文件,/home/user@host/Calender一个用于 CalDAV /dav/user@host/Calendar

我希望有人可以找到有关此解决方案的帮助。

然而,对于 Ruby,cladav 实现非常缺乏。有形成对象的 ICS 库,但只有纯 Net::HTTP 与服务器交互。Local-guru's 是我发现的唯一一种可以双向工作的红宝石,但它需要一些小问题的帮助。

我修复了其中一些,但不是项目范围内的,我只需要让它工作。但是,如果有人愿意贡献,我很乐意提供帮助。

于 2011-07-21T15:57:56.200 回答
2

我最喜欢检查可能选项的地方之一是Ruby Toolbox。这将是我首先要检查的地方之一。

我还会检查 github,它产生了这个结果,这可能是你最好的选择,也是你正在寻找的。

至于回答你的其他问题,我可能会在看了这篇文章这段代码之后自己动手。

所以,长答案严重缩短,是的,有些库已经完成了你想要做的事情,但如果是我,我会为这个特定的事情推出自己的解决方案。

于 2011-07-28T05:32:50.417 回答
0

你在谷歌上托管你的日历吗?如果你是,那么看看:https ://github.com/northworld/google_calendar

于 2011-07-21T15:33:40.033 回答
0

我们使用了caldav4j,因为我们的应用程序部署在 JRuby 中。不知道这是否适合您。

于 2011-07-22T05:02:24.173 回答