Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google calendar api CalendarList List return empty element

EDIT: The original poster asked this for C#, but the same problem occurs regardless of the library used, and its solution is language independent.

Using 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;

items is empty. On https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list, when I try the api, I get the good result.

I really don't understand why I don't have any result : seems like if the service_account do not have the same calendar as my gmail account linked to.

Any suggestion ? Thanks.

like image 961
Rototo Avatar asked Jun 05 '14 14:06

Rototo


1 Answers

The solution is to share the existing calendar with the service account

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

(You can find the account in question under the credentials tab in Google Developers Console, it's called 'EMAIL ADDRESS')

like image 108
Rototo Avatar answered Oct 19 '22 15:10

Rototo