2010-06-11 3 views
0

Je veux voir les événements sur une période spécifique pour un calendrier spécifique, mais j'ai du mal à utiliser l'API, c'est une API générique, et me rappelle d'utiliser le DOM. Le problème est qu'il semble difficile de travailler avec parce qu'une grande partie de l'information est dans les classes de base génériques.Comment puis-je obtenir toutes les entrées de calendrier pour une période donnée en utilisant Google Calendar API

Comment puis-je obtenir les événements pour un calendrier en utilisant Groovy ou Java? Est-ce que quelqu'un a un exemple de passer des informations d'identification en utilisant curl?

Exemple de code serait apprécié.

Répondre

1

This document a des exemples pour la plupart des cas d'utilisation courants. Par exemple, voici le code pour récupérer des événements pour un intervalle de temps spécifique

URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/private/full"); 

CalendarQuery myQuery = new CalendarQuery(feedUrl); 
myQuery.setMinimumStartTime(DateTime.parseDateTime("2006-03-16T00:00:00")); 
myQuery.setMaximumStartTime(DateTime.parseDateTime("2006-03-24T23:59:59")); 

CalendarService myService = new CalendarService("exampleCo-exampleApp-1"); 
myService.setUserCredentials("[email protected]", "mypassword"); 

// Send the request and receive the response: 
CalendarEventFeed resultFeed = myService.query(myQuery, Feed.class); 

Vous pouvez faire un peu plus groovy, en utilisant quelque chose comme:

def myQuery = new CalendarQuery("http://www.google.com/calendar/feeds/default/private/full".toURL()).with { 
    minimumStartTime = DateTime.parseDateTime("2006-03-16T00:00:00"); 
    maximumStartTime = DateTime.parseDateTime("2006-03-24T23:59:59"); 
    it 
} 

def myService = new CalendarService("exampleCo-exampleApp-1"); 
myService.setUserCredentials("[email protected]", "mypassword"); 

// Send the request and receive the response: 
def resultFeed = myService.query(myQuery, Feed); 
+0

Je vais essayer bientôt, mais ne ceci juste obtient le calendrier. J'ai besoin des entrées de calendrier réelles? – BeWarned

+0

Non, il renvoie les entrées, notez que le type de retour (dans le code Java) est 'CalendarEventFeed', c'est-à-dire qu'il renvoie les événements du calendrier –

1

Si vous n'avez pas besoin de modifier le calendrier, vous n'avez besoin que d'obtenir l'URL de flux privé des calendriers, et vous pouvez utiliser quelque chose comme ceci (tiré de la page http://eu.gr8conf.org/agenda). Il utilise le ICal4J library.

def url = "http://www.google.com/calendar/ical/_SOME_URL_/basic.ics".toURL() 
def cal = Calendars.load(url) 

def result = cal.components.sort { it.startDate.date }.collect { 
    def e = new Expando() 
    e.startDate = it.startDate.date 
    e.endDate = it.endDate.date 
    e.title = it.summary.value 
    if (it.location) { 
    e.presentation = Presentation.findByName(it.location.value, [fetch:"join"]) 
    } 

    e.toString = { 
    "$startDate: $title" 
    } 

    return e 
} 

result 

Joyeux hacking.

Questions connexes