Office365 REST API - 收件人看不到日历事件附件

Office365 REST API - Calendar event attachments not visible for recipients

add attachment 端点似乎有问题。附加到日历事件的文件对日历收件人不可见。附件 对活动创建者可见。直到最近,我的代码已经运行了几个月,这让我相信这是一个倒退。

重现步骤

  1. 必须有两个用户 - 创建者和接收者。
  2. 通过https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events
  3. 创建活动
  4. 通过 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}/attachments
  5. 将文件附加到活动
  6. 以创建者身份转到 Office 365 网站 UI。活动看起来不错,还有附件。
  7. 以创建者身份查询Microsoft graph API。活动看起来不错。 hasAttachmentstrue 并且通过 API 列出附件按预期工作。
  8. 以收件人身份转到 Office 365 网站 UI。活动 缺少附件 (关于活动的其他一切都是准确的)。
  9. 以收件人身份查询Microsoft graph API。 hasAttachmentsfalse 并且您不能用图表 API 列出附件。为了获取接收者的事件 ID,我查询了 /calendarView 端点。它 returns 与步骤 4 中的事件不同的事件 ID,但对象的其余部分匹配(iCalUId、主题、start/end 次等)...但有例外共 hasAttachments.

尝试修复

我尝试创建事件并通过 /users/{userId} 端点而不是 /me 端点附加文件,结果相同。

我也尝试了添加附件 beta 端点,但收到以下错误:

{
  "error": {
    "code": "NavigationNotSupported",
    "message": "Recursive navigation is not allowed after property 'Events' according to the entity schema.",
    "innerError": {
      "request-id": “{uuid}”,
      "date": "2018-06-06T06:28:47"
    }
  }
}

Marc 的解决方法解决了这个问题 - 在附件 之后添加与会者。工作流程如下所示:

  1. 通过 POST 到 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events 创建一个活动(不包括与会者)。
  2. 通过 POST 到 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}/attachments
  3. 将文件附加到事件
  4. 通过 PATCH 将第 1 步中的活动更新为 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}

一些额外的请求,但它完成了工作。