2010-10-25 4 views
1

J'espère que ce sera relativement facile pour quelqu'un qui est familier avec l'API Google Calendar, j'ai fait quelques recherches mais l'API ne me donne pas la réponse! Imaginez qu'un compte Google dispose de 3 calendriers, tous créés par cet utilisateur.Google Agenda - obtenir des événements à partir d'un calendrier spécifique

Je suis en train de faire des événements d'un calendrier spécifique de l'utilisateur, en utilisant l'API Google .NET, comme suit:

Calendar.userName = CalendarUserName; 
    Calendar.userPassword = CalendarPassword; 
    Calendar.feedUri = "https://www.google.com/calendar/feeds/default/private/full"; 

Qu'est-ce qui me donne est l'alimentation de tous les événements de tous les calendriers, ce qui est très bien, mais ensuite j'ai besoin de les analyser (il y a probablement un moyen d'identifier mais je ne le sais pas non plus).

Ce qui serait idéal pour moi, c'est de pouvoir choisir et demander un calendrier particulier, et d'obtenir seulement les événements de celui-là.

Est-ce possible? Est-ce seulement possible en utilisant la requête magic-cookie?

Merci Duncan

Répondre

2

Avez-vous lu celui-ci?

http://code.google.com/apis/calendar/data/2.0/reference.html#Event_feeds

Et celui-ci?

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#RetrievingEvents

Ceci est la partie clé pour comprendre ce que je pense:

Note: Certains de ces extraits de code montrent l'ajout d'un événement à un calendrier par défaut ou primaire d'un utilisateur spécifique calendrier (en remplaçant l'adresse URI POST par une adresse gmail pour la chaîne 'par défaut'), mais les événements peuvent également être ajoutés aux calendriers non-primaires . Pour faire cela, vous avez simplement besoin de l'ID du calendrier qui peut être récupéré à partir du flux allalendar , et est également affiché dans la page Paramètres du calendrier de l'interface utilisateur . Cet identifiant est à nouveau utilisé dans le flux URI: https://www.google.com/calendar/feeds/id/private/full.

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#RetrievingCalendars

+0

donc l'alimentation que je demande devrait être: https://www.google.com/calendar/feeds/ /privé/complet? Ma compréhension était que le cookie magique serait dans la section privée ci-dessus ....hmmm, encore un peu confus! Quoi qu'il en soit, je pense que je vais juste utiliser la version cookie magique car cela me donnera le calendrier que je veux. – Duncan

0
Dim singleUseToken As String = Request.getString("token") 

     Session("sessionToken") = AuthSubUtil.exchangeForSessionToken(singleUseToken, Nothing) 

     Dim authFactory As GAuthSubRequestFactory = New GAuthSubRequestFactory("cl", "LeaveCalendar") 
     authFactory.Token = Session("sessionToken").ToString 
     Dim service As Service = New Service("cl", authFactory.ApplicationName) 
     service.RequestFactory = authFactory 

     Dim query As New CalendarQuery() 
     query.Uri = New Uri("https://www.google.com/calendar/feeds/default/owncalendars/full") 
     Dim resultFeed As AtomFeed = CType(service.Query(query), AtomFeed) 

     For Each entry As AtomEntry In resultFeed.Entries 
      Response.Write("Your calendar:" & entry.Title.Text) 
      Response.Write("<br>") 
      Response.Write("<br>Calendar id " & entry.SelfUri.ToString.Substring(64)) 
     Next 

J'ai essayé ce lien, mais toujours recevoir erreur, exception sur les choses Atom. Je changé ce code un peu litte, en particulier ces 2 lignes:

1) Dim resultFeed Comme AtomFeed = CType (service.Query (requête), AtomFeed)

2) Pour chaque entrée Comme AtomEntry En resultFeed. entrées

J'espère que cela aide les autres utilisateurs VB.NET

Questions connexes