У моего приложения есть подписка на календарь office365 под названием ConferenceRoom. Поэтому, когда событие создано/модифицировано/удалено, сервер office365 отправит уведомление моему приложению о том, что произошло что-то из этих трех.Как узнать, какое событие повторяющегося события было удалено?
В календаре я создаю повторяющееся событие standup meeting на каждый понедельник (через браузер). После этого мое приложение получает уведомление с ChangeType: Created
и вот Повторяющаяся часть мероприятия, что уведомление по:
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [Object],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
И все данные этого события (идентификатор получил от уведомления):
{ '@odata.context': 'https://outlook.office.com/api/v2.0/$metadata#Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46%40ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events/$entity',
'@odata.id': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Events(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=\')',
'@odata.etag': 'W/"Yt2KqvrIzEmHRx7sfmlFxQAADDdF3g=="',
Id: 'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=',
CreatedDateTime: '2016-09-13T03:55:43.5305953-02:00',
LastModifiedDateTime: '2016-09-13T03:55:43.5476101-02:00',
ChangeKey: 'Yt2KqvrIzEmHRx7sfmlFxQAADDdF3g==',
Categories: [],
OriginalStartTimeZone: 'FLE Standard Time',
OriginalEndTimeZone: 'FLE Standard Time',
ResponseStatus: { Response: 'Organizer', Time: '0001-01-01T00:00:00Z' },
iCalUId: '040000008200E00074C5B7101A82E00800000000F9B6FC76830DD2010000000000000000100000005D7D5B0B8D1EA84E86C8AEE4014697CA',
ReminderMinutesBeforeStart: 15,
IsReminderOn: true,
HasAttachments: false,
Subject: 'standup meeting',
Body:
{ ContentType: 'HTML',
Content: '<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n<meta content="text/html; charset=us-ascii">\r\n<style type="text/css" style="display:none">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir="ltr">\r\n<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">\r\n<p><br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n' },
BodyPreview: '',
Importance: 'Normal',
Sensitivity: 'Normal',
Start:
{ DateTime: '2016-09-12T03:00:00.0000000',
TimeZone: 'Etc/GMT+2' },
End:
{ DateTime: '2016-09-12T03:30:00.0000000',
TimeZone: 'Etc/GMT+2' },
Location: { DisplayName: '', Address: {}, Coordinates: {} },
IsAllDay: false,
IsCancelled: false,
IsOrganizer: true,
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [ 'Monday' ],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
ResponseRequested: false,
SeriesMasterId: null,
ShowAs: 'Busy',
Type: 'SeriesMaster',
Attendees: [],
Organizer:
{ EmailAddress:
{ Name: 'John Smith',
Address: '[email protected]' } },
WebLink: 'https://outlook.office365.com/owa/?ItemID=AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT%2FM8JoV8TI5B1BhmG2N%2BBwBi3Yqq%2BsjMSYdHHux%2BaUXFAAAAAAFZAABi3Yqq%2BsjMSYdHHux%2BaUXFAAAMNRbUAAA%3D&exvsurl=1&viewModel=ICalendarItemDetailsViewModelFactory',
'[email protected]': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')/$ref',
'[email protected]': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')' }
Это вполне нормально. Проблема возникает, когда я удаляю одно событие этого события в календаре. Мое приложение получает уведомление с ChangeType: Updated
, и тело этого уведомления почти такое же, как и при создании события. Нет информации о том, в какой день это событие было отменено.
Данные события, когда EVENTID получил от ChangeType: Updated
уведомления:
{ '@odata.context': 'https://outlook.office.com/api/v2.0/$metadata#Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46%40ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events/$entity',
'@odata.id': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Events(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=\')',
'@odata.etag': 'W/"Yt2KqvrIzEmHRx7sfmlFxQAADDdF3w=="',
Id: 'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=',
CreatedDateTime: '2016-09-13T03:55:43.5305953-02:00',
LastModifiedDateTime: '2016-09-13T03:57:48.2229052-02:00',
ChangeKey: 'Yt2KqvrIzEmHRx7sfmlFxQAADDdF3w==',
Categories: [],
OriginalStartTimeZone: 'FLE Standard Time',
OriginalEndTimeZone: 'FLE Standard Time',
ResponseStatus: { Response: 'Organizer', Time: '0001-01-01T00:00:00Z' },
iCalUId: '040000008200E00074C5B7101A82E00800000000F9B6FC76830DD2010000000000000000100000005D7D5B0B8D1EA84E86C8AEE4014697CA',
ReminderMinutesBeforeStart: 15,
IsReminderOn: true,
HasAttachments: false,
Subject: 'standup meeting',
Body:
{ ContentType: 'HTML',
Content: '<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n<meta content="text/html; charset=us-ascii">\r\n<style type="text/css" style="display:none">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir="ltr">\r\n<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">\r\n<p><br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n' },
BodyPreview: '',
Importance: 'Normal',
Sensitivity: 'Normal',
Start:
{ DateTime: '2016-09-12T03:00:00.0000000',
TimeZone: 'Etc/GMT+2' },
End:
{ DateTime: '2016-09-12T03:30:00.0000000',
TimeZone: 'Etc/GMT+2' },
Location: { DisplayName: '', Address: {}, Coordinates: {} },
IsAllDay: false,
IsCancelled: false,
IsOrganizer: true,
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [ 'Monday' ],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
ResponseRequested: false,
SeriesMasterId: null,
ShowAs: 'Busy',
Type: 'SeriesMaster',
Attendees: [],
Organizer:
{ EmailAddress:
{ Name: 'John Smith',
Address: '[email protected]' } },
WebLink: 'https://outlook.office365.com/owa/?ItemID=AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT%2FM8JoV8TI5B1BhmG2N%2BBwBi3Yqq%2BsjMSYdHHux%2BaUXFAAAAAAFZAABi3Yqq%2BsjMSYdHHux%2BaUXFAAAMNRbUAAA%3D&exvsurl=1&viewModel=ICalendarItemDetailsViewModelFactory',
'[email protected]': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')/$ref',
'[email protected]': 'https://outlook.office.com/api/v2.0/Users(\'[email protected]77325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')' }
Вот изображение, чтобы выяснить, что я точно сделал в календаре:
Можете ли вы сказать мне, как знать, появление этого события было удалено?
Это, кажется, тупик, поэтому любая помощь будет оценена по достоинству.
Просто FYI: повторяющееся событие имеет только один EVENTID и удаление одного вхождения повторяющегося события не отправлять уведомление с ChangeType: DELETED
Вы можете добавить точный результат 'ChangeType: Updated', что вы получаете, когда вы удалите одно вхождение? – jehna1
@ jehna1 Добавлены данные о событиях после создания и после обновления. – lehtu
Я знаю, что это было какое-то время, но помогает ли вам этот ответ? http://stackoverflow.com/questions/30484910/modifying-single-occurrence-from-recurring-series-is-not-reflected-in-the-data-r/30508731#30508731 –