首页 > 解决方案 > Microsoft Graph API - 日历事件更改跟踪问题

问题描述

我正在尝试创建一个开始/结束日期比当前时间更早的事件。下面是请求,

POST https://graph.microsoft.com/v1.0/me/events/

Body:
{
  "subject": "Test Old Event",
  "start": {
      "dateTime": "2019-12-20T12:00:00",
      "timeZone": "UTC"
  },
  "end": {
      "dateTime": "2019-12-20T14:00:00",
      "timeZone": "UTC"
  }
}

得到了与以下相同的响应,

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('f7edf005-0451-49de-bae1-a1794b528434')/events/$entity",
    "@odata.etag": "W/\"3zxKTWNb1k2PdgXN3kcaBAAAndJKqg==\"",
    "id": "AAMkAGEwOTJkZjE2LWRhYTYtNDdmMS04NTcxLTIxOThlZDBhMjhlOABGAAAAAACQXz1o19PeQKBkV5TRqGKvBwDfPEpNY1vWTY92Bc3eRxoEAAAAAAENAADfPEpNY1vWTY92Bc3eRxoEAACd2xkjAAA=",
    "createdDateTime": "2019-12-22T17:14:28.5309555Z",
    "lastModifiedDateTime": "2019-12-22T17:14:28.7428321Z",
    "changeKey": "3zxKTWNb1k2PdgXN3kcaBAAAndJKqg==",
    "categories": [],
    "originalStartTimeZone": "UTC",
    "originalEndTimeZone": "UTC",
    "iCalUId": "040000008200E00074C5B7101A82E00800000000902B9E44EBB8D50100000000000000001000000012260EC65CA7EF479B8B92A81A06129F",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": false,
    "subject": "Test Old Event",
    "bodyPreview": "",
    "importance": "normal",
    "sensitivity": "normal",
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "singleInstance",
    "webLink": "https://outlook.office365.com/owa/?itemid=AAMkAGEwOTJkZjE2LWRhYTYtNDdmMS04NTcxLTIxOThlZDBhMjhlOABGAAAAAACQXz1o19PeQKBkV5TRqGKvBwDfPEpNY1vWTY92Bc3eRxoEAAAAAAENAADfPEpNY1vWTY92Bc3eRxoEAACd2xkjAAA%3D&exvsurl=1&path=/calendar/item",
    "onlineMeetingUrl": null,
    "recurrence": null,
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "body": {
        "contentType": "text",
        "content": ""
    },
    "start": {
        "dateTime": "2019-12-20T12:00:00.0000000",
        "timeZone": "UTC"
    },
    "end": {
        "dateTime": "2019-12-20T14:00:00.0000000",
        "timeZone": "UTC"
    },
    "location": {
        "displayName": "",
        "locationType": "default",
        "uniqueIdType": "unknown",
        "address": {},
        "coordinates": {}
    },
    "locations": [],
    "attendees": [],
    "organizer": {
        "emailAddress": {
            "name": "NAME",
            "address": "EMAIL"
        }
    }
}

我创建了图表订阅以获取有关我的日历事件的任何更改的通知,如下所示。

POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json

{
   "changeType": "updated,created,deleted",
   "notificationUrl": "<MY_WEBHOOK>",
   "resource": "me/events",
   "clientState": "<state>"
}

对于我所做的上述创建事件,我通过 webhook 收到了一些更改的通知。

我使用增量查询查询了日历事件的更改。

GET https://graph.microsoft.com/v1.0/me/calendarview/delta?$deltatoken=<DELTA_TOKEN_URL>

下面是我从图表中得到的响应,关于我通过 delta 查询 API 在上面创建的事件。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(event)",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/me/calendarview/delta?$deltatoken=<DELTA_TOKEN_URL>",
    "value": [
        {
            "@odata.type": "#microsoft.graph.event",
            "id": "AAMkAGEwOTJkZjE2LWRhYTYtNDdmMS04NTcxLTIxOThlZDBhMjhlOABGAAAAAACQXz1o19PeQKBkV5TRqGKvBwDfPEpNY1vWTY92Bc3eRxoEAAAAAAENAADfPEpNY1vWTY92Bc3eRxoEAACd2xkjAAA=",
            "@removed": {
                "reason": "deleted"
            }
        }
    ]
}

正如您在上面的响应中看到的,我刚刚创建的事件被返回为@removed即删除,这是不正确的。

这只会发生在我为较早时间创建的事件上。

希望您尽快解决此问题。

谢谢

标签: microsoft-graph-apimicrosoft-graph-calendar

解决方案


推荐阅读