在rails上的ruby中读取一个webcal URL

时间:2013-03-27 05:01:19

标签: ruby-on-rails icalendar webcal

我正在尝试解析网络链接

webcal://www.facebook.com/ical/b.php?uid=13301632&key=asdgagaweg

在Ruby on Rails应用程序中,所以我可以自定义事件条目。我查看了RiCalicalendar,但都没有显示支持阅读日历Feed(webcal://)。

是否有支持解析网络地址的Rails库?如果没有,我该如何创建自己的解析器呢?

1 个答案:

答案 0 :(得分:4)

webcal只是一个用于访问icalendar文档的非官方URI方案。您可以使用http获取日历,并使用以下几种icalendar插件之一解析它:

require 'net/http'
uri = URI('http://www.facebook.com/ical/b.php?uid=13301632&key=asdgagaweg')
calendar = Net::HTTP.get(uri)

有关执行http get请求的其他方法: How make a HTTP request using Ruby on Rails?

然后使用您喜欢的插件解析响应:

icalendar

cal = icalendar.parse(calendar).first

vPim

cal = Vpim::Icalendar.decode(calendar).first  

ri_cal

cal = RiCal.parse_string(calendar).first