我的目标是从 Outlook 日历中获取特定日历的事件并将它们存储在我自己的应用程序的数据库中。
为此,我决定使用Outlook Calendar Get Events API
从该 API 的事件列表中返回的事件对象表示为:
https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#event
他们在哪里写了“Id”属性代表“事件的唯一标识符”
如果我使用此 url 来获取特定日历的事件(日历 id:AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAEGAACMvMRZrMh2TI4LSIPcRBbAAAAAAe)
https://outlook.office.com/api/v2.0/me/calendars ('AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAEGAACMvMRZrMh2TI4LSIPcRBbHAAAAAA0eAAA=')/calendarview?startDateTime=2017-06-10T00:00:00.00Z&endDateTime=2019-07-10T00:00:00.00 Z
我得到这个回应:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
request-id: 80717756-a57d-4502-9ce1-13aec3be209f
X-CalculatedBETarget: HK2PR03MB1507.apcprd03.prod.outlook.com
X-BackEndHttpStatus: 200
Rate-Limit-Limit: 10000
Rate-Limit-Remaining: 9995
Rate-Limit-Reset: 2017-07-14T16:24:41.427Z
OData-Version: 4.0
X-DiagInfo: HK2PR03MB1507
X-BEServer: HK2PR03MB1507
X-FEServer: HK2PR04CA0001
X-MSEdge-Ref: Ref A: 2118A5A0640E4C59B5437B4581B667FA Ref B: BAYEDGE0411 Ref C: 2017-07-14T16:16:25Z
Cache-Control: private
Date: Fri, 14 Jul 2017 16:16:25 GMT
Set-Cookie: exchangecookie=9dd7e1deac02470491ddd5a530fe4afb; expires=Sat, 14-Jul-2018 16:16:25 GMT; path=/; HttpOnly
Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
{
"value": [
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADobAAA=",
"CreatedDateTime": "2017-07-14T15:41:32.178279Z",
"LastModifiedDateTime": "2017-07-14T15:41:32.210305Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ6g==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E0080000000036E0CAAAB7FCD201000000000000000010000000F9E9A2C424C39F45A54AD487C074CBD4",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "Wolla",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADobAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-27T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADohAAA=",
"CreatedDateTime": "2017-07-14T16:06:11.3053044Z",
"LastModifiedDateTime": "2017-07-14T16:06:28.7745105Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ9w==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E0080000000074716B1CBBFCD201000000000000000010000000A23FE5F263BCC7459B473CA26768FC64",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "Holla555",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADohAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-27T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADocAAA=",
"CreatedDateTime": "2017-07-14T15:41:47.8709202Z",
"LastModifiedDateTime": "2017-07-14T15:41:47.9039462Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ6w==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E00800000000E63A25B4B7FCD2010000000000000000100000008BF655A7F20FB041A7C66942CAD1A062",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "Kiop",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADocAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-29T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADodAAA=",
"CreatedDateTime": "2017-07-14T15:42:38.3185569Z",
"LastModifiedDateTime": "2017-07-14T15:43:12.3239487Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ7Q==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E00800000000C91437D2B7FCD20100000000000000001000000095BDBA32070A624D97F87B9447EDC172",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "QWE 456",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADodAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-29T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADoeAAA=",
"CreatedDateTime": "2017-07-14T15:45:33.1043504Z",
"LastModifiedDateTime": "2017-07-14T15:58:38.0246216Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ9Q==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E00800000000C41F653AB8FCD201000000000000000010000000D148B6ED634D7D4A900C9D1D27FA18B7",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "Wallla 5555777777777777uu",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADoeAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-29T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADofAAA=",
"CreatedDateTime": "2017-07-14T15:52:32.8935001Z",
"LastModifiedDateTime": "2017-07-14T15:52:46.679606Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ8Q==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E00800000000B9529C34B9FCD201000000000000000010000000727160C8CCD9D345BACA74163DF4A227",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "Shalla 888",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADofAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-06-28T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-06-29T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
},
{
"Id": "AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADogAAA=",
"CreatedDateTime": "2017-07-14T15:53:22.7526624Z",
"LastModifiedDateTime": "2017-07-14T15:53:32.6616448Z",
"ChangeKey": "jLzEWazIdkyOC0iD3EQWxwAAAABJ8w==",
"Categories": [],
"OriginalStartTimeZone": "UTC",
"OriginalEndTimeZone": "UTC",
"iCalUId": "040000008200E00074C5B7101A82E0080000000010EC5352B9FCD2010000000000000000100000005CABB029EA970A4BB360D21626C7B3D5",
"ReminderMinutesBeforeStart": 15,
"IsReminderOn": true,
"HasAttachments": false,
"Subject": "QWERTY55",
"BodyPreview": "",
"Importance": "Normal",
"Sensitivity": "Normal",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"SeriesMasterId": null,
"ShowAs": "Busy",
"Type": "SingleInstance",
"WebLink": "https://outlook.live.com/owa/?itemid=AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45%2B6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADogAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl": null,
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00: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 content=\"text/html; charset=us-ascii\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\n</body>\r\n</html>\r\n"
},
"Start": {
"DateTime": "2017-07-14T18:30:00.0000000",
"TimeZone": "UTC"
},
"End": {
"DateTime": "2017-07-15T18:30:00.0000000",
"TimeZone": "UTC"
},
"Location": {
"DisplayName": "",
"Address": {
"Type": "Unknown"
},
"Coordinates": {}
},
"Recurrence": null,
"Attendees": [],
"Organizer": {
"EmailAddress": {
"Name": "Raghav Khunger",
"Address": "axerotesting@outlook.com"
}
}
}
]
如您所见,响应中返回的所有事件在其 id 属性中具有相同的值,即
AAMkADRmNGI1MGYxLTNmZGQtNGU1My04MTcxLTFmZjQ5YTkxNDU4OABGAAAAAAB8vzKRZpMiSY45_6WGZiRFBwCMvMRZrMh2TI4LSIPcRBbHAAAAAAENAACMvMRZrMh2TI4LSIPcRBbHAAAAADobAAA=
实际上,返回的是 calendar 的 id。
这是一个错误吗?
您能否分享一些关于如何在获取日历事件时获取事件的唯一 ID 的想法。