2010-01-27 7 views
5

J'essaie d'ajouter un événement à un calendrier spécifique dans google calendar et je ne trouve tout simplement pas comment. Voici mon code:Ajout d'un événement à un calendrier "spécifique" de Google avec l'API GData

 CalendarService service = new CalendarService("MyTEst"); 
     service.setUserCredentials("Username", "Password"); 
     EventEntry entry = new EventEntry(); 

     // Set the title and content of the entry. 
     entry.Title.Text = "title"; 
     entry.Content.Content = "test"; 

     // Set a location for the event. 
     Where eventLocation = new Where(); 
     eventLocation.ValueString = "Location"; 
     entry.Locations.Add(eventLocation); 

     When eventTime = new When(DateTime.now, DateTime.now.AddDays(2)); 
     entry.Times.Add(eventTime); 

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

     // Send the request and receive the response 
     AtomEntry insertedEntry = service.Insert(postUri, entry); 

Quelqu'un peut-il m'aider avec celui-ci?

Modifier

Peut-être que je devrais mentionner que ce fonctionnability est accessible uniquement pour un administrateur d'un site qui veulent ajouter rendez-vous easly et notez à son calendrier Google, donc j'authentifie automatiquement avec « hardcoded » valeur donc je suis sûr que le nom d'utilisateur et mot de passe sont ok.

Répondre

6

Votre code utilise le calendrier Google par défaut pour votre nom d'utilisateur et votre mot de passe. (IE il utilise le calendrier par défaut pour [email protected]) Vous pouvez le voir parce que l'URI pointe vers "/ feed/default/private". Si vous souhaitez publier l'événement dans un autre calendrier, le nom d'utilisateur doit être autorisé à publier sur ce calendrier, et vous devez publier sur cet agenda un uri privé.

EDIT: Le format par défaut de cette URL privée est « http://www.google.com/calendar/feeds/CALENDAR_ID/private/full »

Pour trouver l'ID de calendrier, il est à côté Calendrier adresse dans la page des paramètres de calendrier sur Google Calendars. Il apparaît comme ceci:

"***************************@group.calendar.google.com"

L'URL finale serait:

EDIT: "http://www.google.com/calendar/feeds/ ***************************@group.calendar.google .com/privé/full »

Cela ira dans votre Uri postUri = new Uri();

EDIT:

Mon erreur était que j'ai mentionné que vous devez également inclure la clé privée après le mot privé. Vous n'avez pas réellement à faire cela. J'ai vérifié que je pourrais réussir à publier dans un calendrier secondaire en supprimant la clé privée.

+0

Merci beaucoup DanJo519. Je vais essayer ça maintenant !! –

+0

J'ai essayé et il échoue toujours dans une erreur; L'exécution de la demande a échoué: google.com/calendar/feeds/[email protected]/private-PRIVATE_KEY/full. Je ne suis pas sur de comprendre. J'ai essayé avec "full" ou "basic" à la fin (Basic est fourni par défaut de google mais j'ai essayé avec plein aussi parce que vous l'avez dit.En tout cas, personne ne travaille :( –

+1

J'ai fait une modification à ma réponse.Vous n'avez pas besoin d'inclure -PRIVATE_KEY. Supprimer cela vous permettra de publier, en supposant que vous ayez des permissions en écriture sur le calendrier pour commencer.J'ai testé avec succès avec un de mes calendriers secondaires –

Questions connexes