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

时间:2018-06-06 07:47:30

标签: office365 microsoft-graph outlook-restapi

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 Web UI。该活动看起来不错,包括附件。
  7. 将Microsoft图形API查询为创建者。活动看起来不错。 hasAttachmentstrue,并通过API按预期方式列出附件。
  8. 转到Office 365 Web UI作为收件人。事件缺少附件(事件的其他所有内容都是准确的)。
  9. 将Microsoft图形API查询为收件人。 hasAttachmentsfalse,您无法使用图API列出附件。为了获取收件人的事件ID,我查询了/calendarView端点。它返回的事件ID与步骤4中的事件不同,但对象的其余部分匹配(iCalUId,主题,开始/结束时间等)... hasAttachments除外。
  10. 尝试修复

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

    我还尝试了添加附件测试版端点,但收到了以下错误:

    {
      "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"
        }
      }
    }
    

1 个答案:

答案 0 :(得分:1)

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. 通过PATCH将参与者从步骤1更新为https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}
  4. 一些额外的请求,但它完成了工作。