0

我添加了将谷歌日历与我的应用程序事件同步的功能。但问题是,只要活动参与者回复谷歌日历活动,活动组织者/创建者就会收到来自谷歌的电子邮件。我想收到仅创建/更新事件的电子邮件通知。我添加了notification_settings并将event_response方法保留为空白,但它不起作用。

CALENDAR_ID = 'primary'
CALENDAR_NOTIFIER = 'externalOnly'

gcal_event = client.insert_event(
                                 CALENDAR_ID,
                                 Google::Apis::CalendarV3::Event.new(gcal_event_params(gcal_event_attendees)),
                                 send_updates: CALENDAR_NOTIFIER
                                )


-----------------------
// added notification_settings later so that the organizer should not receive event response, but no luck so far.

def gcal_event_params(gcal_event_attendees)
 {
        summary: event.name,
        description: event.description,
        location: event.location,
        start: { date_time: event.start.to_datetime.to_s, time_zone: org_timezone },
        end: { date_time: event.ends.to_datetime.to_s, time_zone: org_timezone },
        attendees: gcal_event_attendees,
        reminders: { use_default: true },
        notification_settings: {
          notifications: [
                          {type: 'event_creation', method: 'email'},
                          {type: 'event_change', method: 'email'},
                          {type: 'event_cancellation', method: 'email'},
                          {type: 'event_response', method: ''}
                         ]
        }  }
end
4

1 回答 1

1

回答:

事件创建、更改、取消和响应的通知设置是日历本身的设置,而不是日历的单个事件。的notification_settings参数Events: insert不存在,这就是为什么这不起作用。

更多信息:

我不确定您链接的博客作者从哪里获取信息,但Events: insert日历 API 的方法没有此参数。

在用户界面中,您可以在整个日历calendar.google.com的设置页面中看到您所指的通知设置,而不是单个事件:

在此处输入图像描述

对于单个事件,在创建事件时,您可以使用参数指定在创建事件时sendUpdates应该通知谁(如果有的话) 。相同的参数作为方法的一部分存在,它允许您设置谁会收到该特定更改的通知。Events: update

如果您想为事件的创建、更改和取消设置通知,但不为事件响应设置通知,则需要为日历本身进行设置。然而不幸的是,这不是可以通过 API 完成的,需要在用户界面本身中进行设置。

不幸的是,这确实意味着您正在做的事情不是通过日历 API 可以实现的。

功能要求:

如果您对此感兴趣,您可以让 Google 知道这是一项对日历 API 很重要的功能,并且您希望请求他们实现它。Google 的问题跟踪器是开发人员报告问题并为其开发服务提出功能请求的地方。为日历 API 提交功能请求的页面在此处

参考:

于 2020-01-21T11:31:26.660 回答