发送谷歌日历事件删除通知

时间:2017-01-11 17:58:08

标签: c# google-calendar-api

我想在删除活动时发送通知:

var certificate = new X509Certificate2("myp12filepath", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail)
    {
        Scopes = Scopes
    }.FromCertificate(certificate));

BaseClientService.Initializer initializer = new BaseClientService.Initializer();
initializer.HttpClientInitializer = credential;
initializer.ApplicationName = ApplicationName;
var service1 = new CalendarService(initializer);

var googleCalendarEvent = service1.Events.Delete("calendarId", "eventId").Execute();

删除功能不接受第3个参数(表示是否发送通知),如link所述(没有c#示例)

有没有办法在删除活动后发送电子邮件通知?

2 个答案:

答案 0 :(得分:2)

创建删除请求的实例并将通知指定为true。见下文。

var certificate = new X509Certificate2("myp12filepath", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail)
    {
        Scopes = Scopes
    }.FromCertificate(certificate));

BaseClientService.Initializer initializer = new BaseClientService.Initializer();
initializer.HttpClientInitializer = credential;
initializer.ApplicationName = ApplicationName;
var service1 = new CalendarService(initializer);

EventsResource.DeleteRequest delReq = service1.Events.Delete("calendarId", "eventId");
delReq.SendNotifications = true;
var googleCalendarEvent = delReq.Execute();

答案 1 :(得分:0)

AFAIK,如果您要发送有关删除事件的通知,则需要将sendNotifications设置为true,如您在给定link中所述。除此之外,对于用户接收通知,还应检查用户的通知设置,如此forum中提及的每个日历以及给定的here

下面列出了打开或关闭通知的步骤:

  

您可以选择是否包含活动通知,以及是否要通过电子邮件或浏览器接收通知。

     
      
  1. 在您的计算机上打开Google Calendar
  2.   
  3. 点击右上角的设置(齿轮图标)>设置
  4.   
  5. 点击页面顶部的日历标签。
  6.   
  7. 点击日历名称旁边的修改通知
  8.   
  9. 点击添加通知或修改现有通知。
  10.   
  11. 在页面底部,点击保存
  12.         

    注意:要在您的计算机上收到通知,您需要在浏览器中打开Goog​​le日历。

最后,由于C#的样本不多,.NET client可能有所帮助。