【问题标题】:Office365 Unified API, get calendar ID from Events IDOffice365统一API,从Events ID获取日历ID
【发布时间】:2015-10-30 11:35:51
【问题描述】:

每个事件都属于一个日历,因此当我从 Outlook API 管理收到有关日历事件的 webhook 时,我希望也收到此事件的容器 ID,但没有。我得到的关于这个日历事件的信息很少,但仍然有一个 ID。问题是如何获取保存此事件的日历本身的 ID?

我使用统一的 API 来查询这个,到目前为止我得到的只是

GET https://graph.microsoft.com/beta/me/Events/< ID >

但你猜怎么着,在这个响应中我找不到日历 ID。

谁能告诉我如何从事件 ID 中检索日历 ID?

【问题讨论】:

    标签: office365 microsoft-graph-api office365api outlook-restapi


    【解决方案1】:

    问题似乎很老了,但如果有人遇到同样的问题,那就有一些好消息和坏消息。

    好消息:图形实体,事件也不例外,都有所谓的关系(参见docs)。要获取关系数据,您只需将关系名称附加到请求路径的末尾。在我们的例子中:

    GET https://graph.microsoft.com/beta/me/Events/&lt; ID &gt;/calendar

    坏消息:在这种特殊情况下,它总是会返回用户的日历。在某些情况下可能没问题,但是如果您正在使用组日历,那么它就无济于事了。 O365 似乎正在为用户日历创建“克隆”事件。尝试从 Outlook 修改它(至少尝试过在线版本),您会看到,现在您有两个不同的事件 - 一个在用户的日历中,另一个在组中。有点奇怪的逻辑,但可能有一些理由。真正糟糕的是 - 似乎没有办法获得组事件的“主”实例(具有个人事件“克隆”)。

    【讨论】:

      【解决方案2】:

      是的,您无需使用 Beta API 即可实现这一目标。

      https://graph.microsoft.com/v1.0/me/events/&lt;event-id&gt;

      您也可以在此应用过滤器

      https://graph.microsoft.com/v1.0/me/events/&lt;eventid&gt;/?startDateTime=&lt;startDate&gt; &amp;endDateTime=&lt;endDate&gt;

      【讨论】:

      • startDate/endDate 的格式如何?也许链接到一些文档或给出一些示例会大大改善这个答案。
      • 日期格式$date-&gt;format('Y-m-d\T00:00:00\Z');表示2018-01-08T14:05:00Z
      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多