2009-10-06 7 views
1

Je souhaite utiliser l'API gdata pour récupérer des entrées d'événement à partir d'un flux de calendrier public. Voici le code que j'utilise:API Google Data Javascript pour Google Agenda - Heure de l'événement non disponible

var calendarService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0'); 

var feedUri = 'http://www.google.com/calendar/feeds/.../public/basic'; 
var gquery = new google.gdata.calendar.CalendarEventQuery(feedUri); 

gquery.setFutureEvents(true); 
gquery.setMaxResults(10); 

var callback = function(result) {  
    var entries = result.feed.entry;  
    for (var i = 0; i < entries.length; i++) { 
     var entry = entries[i]; 
     var title = entry.getTitle().getText(); 
     var times = entry.getTimes(); 
     alert("Title: " + title + " | Times: " + times); 
    }  
} 
calendarService.getEventsFeed(gquery, callback); 

(URI du flux est le public (ou privé) XML-RSS pour un calendrier Google Apps)

Je me attendais à trouver le temps de l'événement en fois mais c'est un tableau vide. Ce qui est en quelque sorte logique, car le flux réel feedUri ne contient aucune information de temps.

Questions:

  • Qu'est-ce que je fais mal? Comment récupérer des entrées de calendrier qui incluent des heures d'événement?
  • Pourquoi y a-t-il une méthode getTimes() si elle est complètement inutile?

Répondre

3

EDIT: Je viens juste de voir que vous utilisez le flux "basic" - avez-vous plutôt essayé le flux "full"? La description de l'alimentation de base est la suivante:

Alimentation Atom de base sans extension éléments. Ses propriétés et contiennent HTML pré-rendu.

En outre, vous devez connaître les événements uniques par rapport aux événements récurrents. Des informations sur les événements récurrents sont disponibles via getRecurrence(). Pour les événements individuels, getTimes() donnera la bonne information.

Si vous ne voyez pas les informations via l'API, essayez de regarder directement les données source et voyez si vous pouvez les voir.

+0

L'utilisation de l'alimentation complète a résolu le "problème": D –