2010-05-21 2 views
7

J'écris une application pour une entreprise qui utilise Google Agenda en interne et devrait utiliser les événements qu'ils ont déjà dans leur calendrier dans l'application. J'ai donc besoin d'un accès en lecture seule à leurs calendriers à partir de l'application (à savoir, j'ai besoin du titre des événements, des dates de début et de fin et des e-mails des participants pour tous les événements futurs).Quelle est la meilleure façon d'accéder à Google Calendar à partir de ruby?

Quelle est la façon la plus simple de le faire dans ruby ​​ (J'aurais besoin de travailler de manière relativement transparente sur Heroku)?

J'ai essayé d'utiliser la GCal4Ruby gem qui semblait le moins pas à jour de ceux que je trouvais, mais je suis incapable d'authentifier même par la bibliothèque (HTTPRequestFailed-Captcha required error) et encore moins obtenir les informations dont j'ai besoin.

Précision: Ce que je parle est la version Google Apps du calendrier, pas celui de calendar.google.com.

+1

La version de Google Apps prend-elle en charge les adresses iCal privées? Si c'est le cas, le framework ri_cal fait du bon travail pour analyser les fichiers .ics. –

+0

Malheureusement, les adresses privées ne semblent pas être prises en charge. –

Répondre

8

OK J'ai obtenu le fonctionnement de l'API via GCal4Ruby. Je ne suis pas exactement sûr de ce qui s'est mal passé la première fois. Merci à Mike et James pour leurs suggestions. Ceci est un exemple de code que j'ai utilisé pour toute personne intéressée:

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 pour cet exemple je l'ai eu en cours d'exécution 3 mins. – Denis

+0

Merci cela fonctionne pour moi aussi – vinothini

+1

cela semblait bien pour être vrai et en effet l'API de connexion directe s'est arrêté en 2012 – b1nary

1

Vous devriez être en mesure d'utiliser la fonctionnalité Google Agenda private xml address pour extraire les données nécessaires.

Vous pouvez ensuite l'analyser avec hpricot ou nokogiri pour extraire tous les champs dont vous avez besoin.

+0

Malheureusement, cela ne semble pas être pris en charge dans la version Google Apps. Bien que ce serait idéal. –

+0

L'administrateur du domaine pour votre configuration Google Apps devrait être en mesure de l'activer -> [instructions] (http://groups.google.com/group/google-calendar-help-howto/msg/bd4b7416102d5950) –

+0

Est-ce que cela a d'autres implications de sécurité? –

Questions connexes