У меня есть приложение, которое загружает элементы календаря в базу данных и должно синхронизироваться с календарем данного пользователя. К сожалению, при запросе Microsoft Graph для заданного диапазона дат с использованием токенов Delta возвращаются исходные данные события. Однако если Delta-вызов удален из запроса, повторяющиеся события возвращаются, как и ожидалось.
Звонок без дельты:
https://graph.microsoft.com/v1.0/me/calendarView?startDateTime=2018-06-26T00:00:00&endDateTime=2018-06-27T00:00:00&$select=id,subject,start,end
Возвращает:
{
"@odata.etag": "W/\"vDPrV1TQYUmam8nxPycXGwABJbtmSQ==\"",
"id": "AAMkADZhMjA2YTNmLTM0NDktNDYyNy05Njk2LTRjNThhMDZkZDBmOQFRAAgI1dr3wqKAAEYAAAAAY_l4isQ6OkOWdkEvK3rrDQcAvDPrV1TQYUmam8nxPycXGwAAAAABDQAAvDPrV1TQYUmam8nxPycXGwAAAtcOVAAAEA==",
"subject": "Daily recurring event",
"start": {
"dateTime": "2018-06-26T14:30:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2018-06-26T14:45:00.0000000",
"timeZone": "UTC"
}
}
Однако при попытке добавить к запросу «delta» вызов с использованием одинаковых дат начала / окончания возвращаются ОРИГИНАЛЬНЫЕ даты (и Id) события. Кроме того, столбцы SELECT полностью игнорируются.
Звонок с Delta:
https://graph.microsoft.com/v1.0/me/calendarView/delta?startDateTime=2018-06-26T00:00:00&endDateTime=2018-06-27T00:00:00&$select=id,subject,start,end
Возвращает:
{
"@odata.type": "#microsoft.graph.event",
"@odata.etag": "W/\"vDPrV1TQYUmam8nxPycXGwABJbtmSQ==\"",
"createdDateTime": "2017-04-19T15:02:38.8680605Z",
"lastModifiedDateTime": "2018-06-25T14:15:14.2194888Z",
"changeKey": "vDPrV1TQYUmam8nxPycXGwABJbtmSQ==",
"categories": [],
"originalStartTimeZone": "Eastern Standard Time",
"originalEndTimeZone": "Eastern Standard Time",
"iCalUId": "040000008200E00074C5B7101A82E0080000000050B9E76D2CF2D001000000000000000010000000831C6E0657580F44A0799E55EB5F2E49",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"hasAttachments": false,
"subject": "Daily recurring event",
"bodyPreview": "",
"importance": "normal",
"sensitivity": "normal",
"isAllDay": false,
"isCancelled": false,
"isOrganizer": false,
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "seriesMaster",
...
"id": "AAMkADZhMjA2YTNmLTM0NDktNDYyNy05Njk2LTRjNThhMDZkZDBmOQBGAAAAAABj6XiKxDo6Q5Z2QS8reusNBwC8M_tXVNBhSZqbyfE-JxcbAAAAAAENAAC8M_tXVNBhSZqbyfE-JxcbAAAC1w5UAAA=",
"responseStatus": {
"response": "accepted",
"time": "2017-04-19T15:02:00Z"
},
"body": {
"contentType": "html",
"content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta name=\"Generator\" content=\"Microsoft Exchange Server\">\r\n<!-- converted from rtf -->\r\n<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>\r\n</head>\r\n<body>\r\n<font face=\"Calibri\" size=\"2\"><span style=\"font-size:11pt;\">\r\n<div> </div>\r\n<div> </div>\r\n</span></font>\r\n</body>\r\n</html>\r\n"
},
"start": {
"dateTime": "2015-09-22T14:30:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2015-09-22T14:45:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "on your feet",
"locationType": "default",
"uniqueId": "on your feet",
"uniqueIdType": "private"
},
"locations": [
{
"displayName": "on your feet",
"locationType": "default",
"uniqueId": "on your feet",
"uniqueIdType": "private"
}
],
"recurrence": {
"pattern": {
"type": "weekly",
"interval": 1,
"month": 0,
"dayOfMonth": 0,
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"firstDayOfWeek": "sunday",
"index": "first"
},
"range": {
"type": "noEnd",
"startDate": "2015-09-22",
"endDate": "0001-01-01",
"recurrenceTimeZone": "Eastern Standard Time",
"numberOfOccurrences": 0
}
},
"attendees": [
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Nunya Biz",
"address": "biz@markie.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Nunya Biz",
"address": "biz@markie.com"
}
}
},
Может кто-нибудь сказать мне, как я могу получить запрос Delta для возврата экземпляра повторяющегося события, в отличие от "seriesMaster"?