与Outlook API交谈的我的REST API规范

时间:2019-01-30 16:37:23

标签: outlook office365 office365api outlook-restapi

我尝试使用Outlook REST API从Outlook获取事件列表。
据微软首先文档;我需要订阅前景

端点为:https://outlook.office.com/api/v2.0/me/subscriptions
需要更改事件时发送通知的NotificationURL参数。
我应该实现一个REST API(用于NotificationURL)以将Outlook作为参数传递,但是我找不到任何文档。
哪些参数应该获取我的REST端点或它的类型(发布,获取,放置等...)
感谢您的帮助
谢谢!

与Outlook API交谈的我的REST API规范

2 个答案:

答案 0 :(得分:0)

如果您希望获得事件列表,则完全不需要使用订阅。只需使用here中所述的过程即可。

答案 1 :(得分:0)

Microsoft已将Outlook事件的推送通知api又称为webhook。为此,您需要先注册(创建资源订阅)Webhook。 请查看下面的代码段,当在通知URL上创建或更新任何事件时,该代码段可发送通知。 此处的文档https://docs.microsoft.com/en-us/graph/webhooks#notification-endpoint-validation

POST https://graph.microsoft.com/v1.0/subscriptions Content-type: application/json { "changeType": "created,updated", "notificationUrl": "<YOUR-notification api endpoint>/api/notify", "resource": "me/events", "expirationDateTime":"2019-03-3T18:23:45.9356913Z", "clientState": "myOutlookEvents" }

您可以使用clientState验证来自MS Graph的终结点请求。

MS将以以下格式发布数据

{
  "value": [
    {
      "subscriptionId":"<subscription_guid>",
      "subscriptionExpirationDateTime":2019-03-3T18:23:45.9356913Z",
      "clientState": "myOutlookEvents",
      "changeType":"created",
      "resource":"users/{user_guid}@<tenant_guid>/event/{long_id_string}",
      "resourceData":
      {
        "@odata.type":"#Microsoft.Graph.Event",
        "@odata.id":"Users/{user_guid}@<tenant_guid>/event/{long_id_string}",
        "@odata.etag":"W/\"CQAAABYAAADkrWGo7bouTKlsgTZMr9KwAAAUWRHf\"",
        "id":"<long_id_string>"
      }
    }
  ]
}

此后,您需要从从图api接收到的ID中获取事件