2009-01-25 6 views
3

J'ai joué avec l'API Google Calendar et je suis bloqué sur quelque chose. Lorsque je l'appelle ci-dessous à supprimer un événement de l'agenda cela fonctionne bien sur le premier passage et généralement le second. Cependant, autour de la 2ème ou 3ème fois que j'appelle cette méthode, j'obtiens un (401) erreur non autorisée. Il utilise les mêmes informations d'identification à chaque fois. Si je reçois l'exception, je peux réinitialiser les informations d'identification dans la capture et cela fonctionne bien. Je préférerais ne pas avoir à faire ça. Des idées?Pourquoi est-ce que je reçois une erreur (401) non autorisée dans Google Calendar API

 CalendarService myService = new CalendarService("mycompany-myapp-1"); 
     myService.setUserCredentials("[email protected]", "password"); 


     // set the query for the event 
     EventQuery myQuery = new EventQuery(("http://www.google.com/calendar/feeds/[email protected]/private/full")); 
     myQuery.Query = "Cut the grass"; 
     myQuery.StartTime = DateTime.Now; 
     myQuery.EndTime = DateTime.Now.AddDays(1); 

     // find the event 
     EventFeed myResultsFeed = null; 

     try 
     { 
      // execute the query to find the event 
      myResultsFeed = myService.Query(myQuery);     
     } 
     catch (Exception ex) 
     { 
      // this is where i get the unauthorized exception 
      // if i reset the credentials here it works fine 

      myService.setUserCredentials("[email protected]", "password"); 
      myResultsFeed = myService.Query(myQuery); 
     } 

     if (myResultsFeed != null && myResultsFeed.Entries.Count > 0) 
     { 
      AtomEntry firstMatchEntry = myResultsFeed.Entries[0]; 
      firstMatchEntry.Delete(); 
     } 
+0

Que se passe-t-il si vous utilisez l'URI de flux que vous avez? est-il autorisé dans le navigateur web ou est-il restreint? – BerggreenDK

Répondre

0

Je pense que plus d'informations sont nécessaires. Le meilleur moyen est d'utiliser fiddler.

0

Vous pouvez résoudre ce problème en créant un contrôle webbrowser qui accède à l'API en charge et ne le montre jamais à l'utilisateur. Seule solution j'ai trouvé que 100% résout le problème.

Questions connexes