2014-06-05 14 views
6

EDIT: Il manifesto originale ha chiesto questo per C#, ma lo stesso problema si verifica indipendentemente dalla libreria utilizzata, e la sua soluzione è indipendente dalla lingua .Google calendar api CalendarList Lista tornare elemento vuoto

con C# lib,

 string service_account = "[email protected]"; 

     var certificate = new X509Certificate2(@"pathtomy-privatekey.p12", "notasecret", X509KeyStorageFlags.Exportable); 

     ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer(service_account) 
      { 
       Scopes = new[] { CalendarService.Scope.Calendar } 
      }.FromCertificate(certificate)); 


     // Create the service. 
     var service = new CalendarService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = "My project name", 

     }); 

     var calendarList = service.CalendarList.List().Execute(); 
     IList<CalendarListEntry> items = calendarList.Items; 

articoli è vuota. Su https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list, quando provo l'api, ottengo il buon risultato.

Realmente non capisco perché non ho alcun risultato: sembra che se il servizio account non abbia lo stesso calendario del mio account gmail collegato.

Qualche suggerimento? Grazie.

risposta

10

La soluzione è quella di condividere il calendario esistente con l'account di servizio

<paste-your-account-here>@developer.gserviceaccount.com

(È possibile trovare l'account in questione sotto la scheda credentials in Google Developers Console, si chiama 'INDIRIZZO E-MAIL')

+0

@aldanux - Di cosa stai parlando? Questa è ** esattamente ** la soluzione al problema. – mac

+0

@Rototo - Grazie mille, sono rimasto bloccato su questo da un'ora e non sapevo cosa provare dopo! Hai salvato la mia giornata ... :) – mac

+0

Dopo aver condiviso il calendario con l'account di servizio, l'elenco dei calendari sembrava ancora vuoto per me. Dopo aver condiviso un secondo calendario con l'account di servizio, entrambi sono apparsi. Ho quasi tirato fuori i miei capelli prima di imbattersi in questa soluzione, quindi se sei ancora bloccato, forse sarà d'aiuto. – alex83

Problemi correlati