Microsoft Graph delta: повторяющиеся события календаря, возвращающие неверное начало / конец - PullRequest
0 голосов
/ 28 июня 2018

У меня есть приложение, которое загружает элементы календаря в базу данных и должно синхронизироваться с календарем данного пользователя. К сожалению, при запросе 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>&nbsp;</div>\r\n<div>&nbsp;</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"?

1 Ответ

0 голосов
/ 28 июня 2018

Ах, я понял это! Дельта возвращает seriesMaster, но также возвращает подробности экземпляра (вхождения) в конце. Мой плохой из-за того, что я оставил это вне результатов оригинального поста.

Недостающая ссылка:

    {
        "@odata.type": "#microsoft.graph.event",
        "@odata.etag": "W/\"DwAAABYAAAC8M+tXVNBhSZqbyfE/JxcbAAElu2ZJ\"",
        "seriesMasterId": "AAMkADZhMjA2YTNmLTM0NDktNDYyNy05Njk2LTRjNThhMDZkZDBmOQBGAAAAAABj6XiKxDo6Q5Z2QS8reusNBwC8M_tXVNBhSZqbyfE-JxcbAAAAAAENAAC8M_tXVNBhSZqbyfE-JxcbAAAC1w5UAAA=",
        "type": "occurrence",
        "id": "AAMkADZhMjA2YTNmLTM0NDktNDYyNy05Njk2LTRjNThhMDZkZDBmOQFRAAgI1dr3wqKAAEYAAAAAY_l4isQ6OkOWdkEvK3rrDQcAvDPrV1TQYUmam8nxPycXGwAAAAABDQAAvDPrV1TQYUmam8nxPycXGwAAAtcOVAAAEA==",
        "start": {
            "dateTime": "2018-06-26T14:30:00.0000000",
            "timeZone": "UTC"
        },
        "end": {
            "dateTime": "2018-06-26T14:45:00.0000000",
            "timeZone": "UTC"
        }
    },

Обратите внимание, что "type" = "вхождение" и "seriesMasterId" указывают обратно на поле Id seriesMaster. Содержит правильную информацию о начале / конце события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...