Como acessar o calendário dos usuários do domínio usando a conta de serviço em .net?

Estou usando a conta de serviço com key.p12 cert para acessar a API do Google Agenda. No entanto, ele não pode acessar o calendário de nenhum usuário no domínio. Eu segui as etapas para delegar autoridade em todo o domínio à conta de serviçohttps://developers.google.com/accounts/docs/OAuth2ServiceAccount

Não possui amostra de código para .net. E parece que só recebo ServiceAccountCredential na biblioteca do cliente .net do google. Aqui está o meu código

    static void Main(string[] args)
    {
        string serviceAccountEmail = "[email protected]";
        var certificate = new X509Certificate2(@"clientPrivateKey.p12", "notasecret",  X509KeyStorageFlags.Exportable);

        Console.WriteLine("service account: {0}", serviceAccountEmail);

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

        BaseClientService.Initializer initializer = new  BaseClientService.Initializer();            

        initializer.HttpClientInitializer = credential;           
        initializer.ApplicationName = "Google Calendar Sample";
        CalendarService calservice = new CalendarService(initializer);

        // list all the calendars it can see
        try
        {
            var list = calservice.CalendarList.List().Execute();

            if (list.Items.Count > 0)
            {
                foreach(var item in list.Items)
                {
                    Console.WriteLine("Found calendar for account {0}", item.Id);
                }
            }
            else
            {
                Console.WriteLine("Calendar list for this service account is empty");
            }
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

A lista do calendário está sempre vazia. Se eu compartilhar manualmente o calendário da minha conta de domínio com esta conta de serviço na configuração de calendário, esse código retornará o calendário da minha conta de domínio com êxito.

Existe uma maneira de fazer com que essa conta de serviço acesse todo o calendário do usuário no domínio?

questionAnswers(2)

yourAnswerToTheQuestion