2010-05-21 3 views
7

Sto scrivendo un'app per un'azienda che utilizza Google Calendar internamente e dovrei utilizzare gli eventi che hanno già nel proprio calendario nell'app. Quindi ho bisogno di leggere solo l'accesso ai loro calendari dall'app (ovvero ho bisogno del titolo degli eventi, delle date di inizio e fine e delle email dei partecipanti per tutti gli eventi futuri).Qual è il modo migliore per accedere a Google Calendar da Ruby?

Qual è il modo più semplice per farlo in ruby ​​ (Avrei bisogno che funzioni in modo relativamente uniforme su Heroku)?

Ho provato ad utilizzare il GCal4Ruby gem che sembrava la meno obsoleti di quelli che ho trovato ma sono in grado di autenticare anche attraverso la biblioteca (HTTPRequestFailed-Captcha required error) per non parlare di ottenere le informazioni che ho bisogno.

Chiarimento: Quello che sto parlando è la versione di Google Apps del calendario, non quello di calendar.google.com.

+1

La versione di Google Apps supporta gli indirizzi iCal privati? Se è così, il framework ri_cal fa un ottimo lavoro nell'analisi dei file .ics. –

+0

Purtroppo gli indirizzi privati ​​non sembrano essere supportati. –

risposta

8

OK Ho ottenuto l'API tramite GCal4Ruby funzionante. Non sono esattamente sicuro di cosa sia andato storto la prima volta. Grazie a Mike e James per i loro suggerimenti. Questo è un codice di esempio che ho utilizzato per chiunque fosse interessato:

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 per questo esempio l'ho ottenuto in esecuzione 3 minuti. – Denis

+0

Grazie anche a questo sta lavorando per me anche – vinothini

+1

questo sembrava buono per essere vero e infatti l'accesso diretto api si è fermato nel 2012 – b1nary

1

Dovresti essere in grado di utilizzare la funzione Google Calendar private xml address per estrarre i dati necessari.

È quindi possibile analizzarlo con hpricot o nokogiri per estrarre i campi desiderati.

+0

Purtroppo non sembra essere supportato nella versione di Google Apps. Anche se sarebbe l'ideale. –

+0

L'amministratore del dominio per la configurazione di Google Apps dovrebbe essere in grado di abilitare questo -> [istruzioni] (http://groups.google.com/group/google-calendar-help-howto/msg/bd4b7416102d5950) –

+0

Questo ha altro implicazioni sulla sicurezza? –