Не в состоянии использовать Graph API для создания событий, которые импортируются из Google
Я импортирую некоторые события в свой Календарь Outlook через файл ics, которые были созданы в Календаре Google. Импорт выполнен успешно, но я считаю, что эти объекты событий отличаются от других событий, которые я создаю через пользовательский интерфейс Outlook.
Используя Graph Explorer, я вижу, что originalStartTimeZone
а также originalEndTimeZone
в импортированном событии tzone://Microsoft/Custom
а также recurrenceTimeZone
пустая строка
{
"@odata.etag": "W/\"jQw3WvygBke/Eeuel/y+PAACnR0HFQ==\"",
"id": "AAMkADU2MzY5ODJlLWI2YjgtNDM5YS1iMWQzLTkxNWFlOTk3MjA3MABGAAAAAAAZitkJ2449ToBFAe4BGzZIBwCNDDda-KAGR78R656X-L48AAKczwuSAACNDDda-KAGR78R656X-L48AAKcz0NjAAA=",
"createdDateTime": "2019-03-11T12:58:33.1040062Z",
"lastModifiedDateTime": "2019-03-11T12:58:33.2340999Z",
"changeKey": "jQw3WvygBke/Eeuel/y+PAACnR0HFQ==",
"categories": [],
"originalStartTimeZone": "tzone://Microsoft/Custom",
"originalEndTimeZone": "tzone://Microsoft/Custom",
"iCalUId": "040000008200E00074C5B7101A82E0080000000000000000000000000000000000000000320000007643616C2D55696401000000336A6C61316A6773666C6B766D70666F766D6D7365686439647240676F6F676C652E636F6D00",
"reminderMinutesBeforeStart": 0,
"isReminderOn": false,
"hasAttachments": false,
"subject": "Every Tue.",
"bodyPreview": "",
"importance": "normal",
"sensitivity": "normal",
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"responseRequested": false,
"seriesMasterId": null,
"showAs": "busy",
"type": "seriesMaster",
"webLink": "https://outlook.office365.com/owa/?itemid=AAMkADU2MzY5ODJlLWI2YjgtNDM5YS1iMWQzLTkxNWFlOTk3MjA3MABGAAAAAAAZitkJ2449ToBFAe4BGzZIBwCNDDda%2FKAGR78R656X%2FL48AAKczwuSAACNDDda%2FKAGR78R656X%2FL48AAKcz0NjAAA%3D&exvsurl=1&path=/calendar/item",
"onlineMeetingUrl": null,
"responseStatus": {
"response": "organizer",
"time": "0001-01-01T00:00:00Z"
},
"body": {
"contentType": "html",
"content": "<html><head><meta name=\"Generator\" content=\"Microsoft Exchange Server\">\r\n<!-- converted from text -->\r\n<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style></head>\r\n<body>\r\n<font size=\"2\"><span style=\"font-size:11pt;\"><div class=\"PlainText\"> </div></span></font>\r\n</body>\r\n</html>\r\n"
},
"start": {
"dateTime": "2018-08-13T22:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2018-08-14T00:00:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"uniqueIdType": "unknown",
"address": {},
"coordinates": {}
},
"locations": [],
"recurrence": {
"pattern": {
"type": "weekly",
"interval": 1,
"month": 0,
"dayOfMonth": 0,
"daysOfWeek": ["tuesday"],
"firstDayOfWeek": "monday",
"index": "first"
},
"range": {
"type": "endDate",
"startDate": "2018-08-14",
"endDate": "2018-09-18",
"recurrenceTimeZone": "",
"numberOfOccurrences": 0
}
},
"attendees": [],
"organizer": {
"emailAddress": {
"name": "my@gsuite.com",
"address": "my@gsuite.com"
}
}
}
Кроме того, когда я использую это event
объект как тело запроса API Create Event, он возвращает эту ошибку:
{
"error": {
"code": "TimeZoneNotSupportedException",
"message": "A valid TimeZone value must be specified. The following TimeZone value is not supported: ''.",
"innerError": {
"request-id": "69f1a5de-1dbe-4caa-a996-15dc9190380c",
"date": "2019-03-13T13:37:24"
}
}
}
Это ошибка с импортом .ics
файлы или это ограничение API?
1 ответ
Ответ такой же, как я указал на ваш вопрос. Не могу создать весь день, повторяемый через Graph API:
Вы публикуете весь объект, включая несколько свойств только для чтения. Это всегда приведет к провалу какого-либо рода.
При работе с Microsoft Graph (на самом деле, практически с любым REST API) вы должны отправлять только те свойства, которые хотите установить.
Для вышеупомянутого события вы бы отправили что-то вроде этого:
POST https://graph.microsoft.com/v1.0/me/events
{
"isReminderOn": false,
"subject": "Every Tue.",
"importance": "normal",
"sensitivity": "normal",
"showAs": "busy",
"body": {
"contentType": "html",
"content": "<html><head><meta name=\"Generator\" content=\"Microsoft Exchange Server\">\r\n<!-- converted from text -->\r\n<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style></head>\r\n<body>\r\n<font size=\"2\"><span style=\"font-size:11pt;\"><div class=\"PlainText\"> </div></span></font>\r\n</body>\r\n</html>\r\n"
},
"start": {
"dateTime": "2018-08-13T22:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2018-08-14T00:00:00.0000000",
"timeZone": "UTC"
},
"recurrence": {
"pattern": {
"type": "weekly",
"interval": 1,
"daysOfWeek": ["Tuesday"]
},
"range": {
"type": "endDate",
"startDate": "2018-08-14",
"endDate": "2018-09-18"
}
}
}
Для дальнейшего использования в документации также есть список поддерживаемых часовых поясов.