我有一个使用.net控制台应用程序的应用程序,该应用程序将在白天无人值守地执行计划任务。我已经能够插入事件没有问题。但我想要做的是删除事件和/或清除日历。我需要使用服务帐户,因为该程序无人值守。当我在下面运行此代码时,它给了我403未经授权的错误。我已将此日历分享到服务帐户电子邮件地址。我收到了service.Calendars.Clear(Calitems [0] .Id).Execute();线。
当我从控制台运行clear命令时,它会运行,但需要oauth授权。请告诉我,我不需要进行身份验证来删除/清除日历事件。由于该程序无人值守,因此无法正常工作。
再次感谢您的帮助。
string keyFilePath = "thekeyfile.p12";
string serviceAccountEmail = "serviceaccountemail@developer.gserviceaccount.com";
var certificate = new X509Certificate2(keyFilePath, "****", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = scopes
}.FromCertificate(certificate));
// Create the service.
CalendarService service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Calendar API Sample",
});
var calendarList = service.CalendarList.List().Execute();
IList<CalendarListEntry> Calitems = calendarList.Items;
EventsResource.ListRequest request = service.Events.List(Calitems[0].Id);
Console.WriteLine("Starting");
service.Calendars.Clear(Calitems[0].Id).Execute();
Console.WriteLine("Ending");
return true;