Wie kann ich mit dem Dienstkonto in .net auf den Kalender von Domänenbenutzern zugreifen?

Ich verwende ein Dienstkonto mit dem Zertifikat key.p12, um auf die Google Kalender-API zuzugreifen. Es kann jedoch nicht auf den Kalender eines Benutzers in der Domäne zugreifen. Ich habe die Schritte zum Delegieren der domänenweiten Berechtigung an das Dienstkonto ausgeführt.https: //developers.google.com/accounts/docs/OAuth2ServiceAccoun

Es gibt kein Codebeispiel für .net. Und anscheinend bekomme ich nur ServiceAccountCredential in der .net-Clientbibliothek von Google. Hier ist mein Code

    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);
        }
    }

Die Kalenderliste ist immer leer. Wenn ich meinen Domänenkontokalender in der Kalendereinstellung manuell für dieses Dienstkonto freigebe, gibt dieser Code meinen Domänenkontokalender erfolgreich zurück.

Gibt es eine Möglichkeit, mit diesem Dienstkonto auf den gesamten Kalender des Benutzers in der Domäne zuzugreifen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage