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?