在 Google 日历 API 中屏蔽与与会者回复相关的电子邮件通知
Muting Email Notifications related to Attendee Responses in Google Calendar API
我添加了将 google 日历与我的应用程序事件同步的功能。但问题是,每当活动参与者响应 google 日历活动时,活动 organizer/creator 就会收到来自 google 的电子邮件。我只想收到 creation/updation 事件的电子邮件通知。我添加了 notification_settings 并保留了 event_response 方法到 blank 但它没有用。
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
答案:
事件创建、更改、取消和响应的通知设置是日历本身的设置,不是日历的单个事件。 Events: insert
的 notification_settings
参数不存在,这就是它不起作用的原因。
更多信息:
我不太确定您链接的博客的作者是从哪里获取信息的,但是日历 API 的 Events: insert
方法没有此参数。
在 calendar.google.com
的用户界面中,您可以在 整个日历[的设置页面中看到您所指的通知设置=70=],不针对个别事件:
对于单个事件,在创建事件时,您可以使用 sendUpdates
参数指定在创建事件时应通知谁(如果有人) 。相同的参数作为 Events: update
方法的一部分存在,它允许您设置谁得到通知 该特定更改.
如果您想为事件的创建、更改和取消设置通知,而不是为事件响应设置通知,则需要为日历本身设置。然而不幸的是,这不是可以用 API 完成的事情,需要在用户界面本身中设置。
不幸的是,这确实意味着您正在做的事情无法通过日历实现 API。
功能请求:
如果您对此感兴趣,您可以让 Google 知道这是一项对日历 API 很重要的功能,并且您希望请求他们实现它。 Google 的 Issue Tracker is a place for developers to report issues and make feature requests for their development services. The page to file a Feature Request for the Calendar API is here.
参考文献:
我添加了将 google 日历与我的应用程序事件同步的功能。但问题是,每当活动参与者响应 google 日历活动时,活动 organizer/creator 就会收到来自 google 的电子邮件。我只想收到 creation/updation 事件的电子邮件通知。我添加了 notification_settings 并保留了 event_response 方法到 blank 但它没有用。
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
答案:
事件创建、更改、取消和响应的通知设置是日历本身的设置,不是日历的单个事件。 Events: insert
的 notification_settings
参数不存在,这就是它不起作用的原因。
更多信息:
我不太确定您链接的博客的作者是从哪里获取信息的,但是日历 API 的 Events: insert
方法没有此参数。
在 calendar.google.com
的用户界面中,您可以在 整个日历[的设置页面中看到您所指的通知设置=70=],不针对个别事件:
对于单个事件,在创建事件时,您可以使用 sendUpdates
参数指定在创建事件时应通知谁(如果有人) 。相同的参数作为 Events: update
方法的一部分存在,它允许您设置谁得到通知 该特定更改.
如果您想为事件的创建、更改和取消设置通知,而不是为事件响应设置通知,则需要为日历本身设置。然而不幸的是,这不是可以用 API 完成的事情,需要在用户界面本身中设置。
不幸的是,这确实意味着您正在做的事情无法通过日历实现 API。
功能请求:
如果您对此感兴趣,您可以让 Google 知道这是一项对日历 API 很重要的功能,并且您希望请求他们实现它。 Google 的 Issue Tracker is a place for developers to report issues and make feature requests for their development services. The page to file a Feature Request for the Calendar API is here.