2010-05-21 9 views
7

Estoy escribiendo una aplicación para una empresa que utiliza Google Calendar internamente y que necesitaría usar eventos que ya tienen en su calendario en la aplicación. De modo que debo obtener acceso de solo lectura a sus calendarios desde la aplicación (es decir, necesito el título de los eventos, las fechas de inicio y finalización y los correos electrónicos de los asistentes para todos los eventos futuros).¿Cuál es la mejor manera de acceder a Google Calendar desde ruby?

¿Cuál es la forma más sencilla de hacer esto en ruby ​​ (necesitaría que funcione de forma relativamente sencilla en Heroku)?

He intentado utilizar el GCal4Ruby gem el que parecía el menos anticuada de los que encontré, pero no soy capaz de autenticar incluso a través de la biblioteca (HTTPRequestFailed-Captcha required error) y mucho menos obtener la información que necesito.

Aclaración: Lo que estoy hablando es de la versión de Google Apps del calendario, no el de calendar.google.com.

+1

¿La versión de Google Apps admite direcciones iCal privadas? Si es así, el marco de trabajo de ri_cal hace un buen trabajo al analizar archivos .ics. –

+0

Las direcciones lamentablemente privadas no parecen ser compatibles. –

Respuesta

8

OK Recibí la API a través de GCal4Ruby trabajando. No estoy exactamente seguro de qué salió mal la primera vez. Gracias a Mike y James por sus sugerencias. Este es el código de muestra que utilicé para cualquier persona interesada:

require "rubygems" 
require "gcal4ruby" 

serv = GCal4Ruby::Service.new 
serv.authenticate "[email protected]", "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 
+0

Thx para esta muestra lo tengo funcionando 3 minutos. – Denis

+0

Gracias, esto también funciona para mí – vinothini

+1

esto parecía bueno para ser cierto y, de hecho, la API de inicio de sesión se detuvo en 2012 – b1nary

1

Debería poder utilizar la función Google Calendar private xml address para extraer los datos necesarios.

A continuación, puede analizarlo con hpricot o nokogiri para extraer los campos que necesite.

+0

Lamentablemente, eso no parece ser compatible con la versión de Google Apps. Aunque eso sería ideal. –

+0

El administrador del dominio para la configuración de Google Apps debe poder habilitar esto -> [instrucciones] (http://groups.google.com/group/google-calendar-help-howto/msg/bd4b7416102d5950) –

+0

¿Eso tiene otro implicaciones de seguridad? –

Cuestiones relacionadas