从Ruby访问Google日历的最佳方法是什么?

7
我正在为一家内部使用Google日历的公司编写应用程序,需要在应用程序中使用他们已经有的日历事件。因此,我需要从应用程序中获取只读访问其日历的权限(即我需要所有未来事件的标题、开始和结束日期以及与会者电子邮件)。 在Ruby中最简单的方法是什么(我需要它在Heroku上相对无缝地工作)?
我尝试使用GCal4Ruby gem,这似乎是我找到的过时库中最不过时的一个,但我甚至无法通过该库进行身份验证(HTTPRequestFailed - Captcha required error),更别说获取我所需的信息了。 澄清:我所说的是Google应用程序版本的日历,而不是calendar.google.com上的版本。

1
谷歌应用版本是否支持私人iCal地址?如果是的话,ri_cal框架对于解析.ics文件做得相当不错。 - James A. Rosen
很遗憾,私有地址似乎不受支持。 - Jakub Hampl
2个回答

8

好的,我通过GCal4Ruby成功获取了API。我不太确定第一次出了什么问题。感谢Mike和James提供的建议。这是样例代码,供有兴趣的人参考:

require "rubygems"
require "gcal4ruby"

serv = GCal4Ruby::Service.new
serv.authenticate "username@example.com", "password"

events = GCal4Ruby::Event.find serv, {'start-min' => Time.now.utc.xmlschema, 
    :calendar => 'example-cal%40example.com'}

events.each do |event|
    puts event.title
    puts event.attendees.join ", "
    puts event.start_time
    puts event.end_time
    puts '-----------------------'
end

谢谢这个示例,我在3分钟内让它运行了。 - Denis
1
这似乎太好以至于不真实,实际上直接登录 API 已经在2012年停止了。 - b1nary

1

你应该能够使用 Google Calendar 的私有 XML 地址功能来提取所需的数据。

然后,你可以使用 hpricot 或 nokogiri 解析它,以提取你需要的任何字段。


遗憾的是,谷歌应用程序版本似乎不支持此功能。虽然这将是理想的。 - Jakub Hampl
您的Google Apps设置的域管理员应该能够启用此功能 -> 说明 - Mike Buckbee
那会有其他安全隐患吗? - Jakub Hampl
一切都有安全隐患,所以“是”。毫无疑问,这是通过深度保密来实现安全(不共享URL);但数据似乎也不会被草率地处理。 - Mike Buckbee
我会尽力联系管理员(尽管可能要等到周末之后),并更新可以做的事情。感谢帮助。 - Jakub Hampl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接