Office365 REST API - 日历事件附件对收件人不可见

标签 office365 microsoft-graph-api outlook-restapi

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

重现步骤

  1. 必须有两个用户 - 创建者和接收者。
  2. 通过 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events 创建事件
  3. 通过 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}/attachments 将文件附加到事件中
  4. 以创建者身份转到 Office 365 Web UI。该事件看起来不错并且包含附件。
  5. 作为创建者查询 Microsoft graph API。事件看起来不错。 hasAttachmentstrue并通过 API 列出附件按预期工作。
  6. 以收件人身份转到 Office 365 Web UI。该事件缺少附件(有关该事件的其他所有信息均准确)。
  7. 作为收件人查询 Microsoft Graph API。 hasAttachmentsfalse并且您无法使用图形 API 列出附件。为了获取收件人的事件 ID,我查询了 /calendarView端点。它返回的事件 ID 与步骤 4 中的事件不同,但对象的其余部分匹配(iCalUId、主题、开始/结束时间等)...但 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. 通过 PATCH 将第 1 步中的事件与与会者一起更新为 https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}

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

关于Office365 REST API - 日历事件附件对收件人不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714919/

相关文章:

python - 尝试使用不带 POST 的 Microsoft Graph API 来获取不记名 token

calendar - 通过 Office 365 REST API 获取 "cancelled"事件

office365 - 获取当前 Word 文档的 OneDrive 项目 ID

vb.net - Office 365 和经典 ASP 与 VB.net SMTP 设置

c# - 尝试使用 Microsoft Graph API v1.0 查询用户的 Office365 个人资料照片时获取 "ErrorAccessDenied"

microsoft-graph-api - 创建对多个资源的 Microsoft Graph API 订阅

active-directory - 创建事件时出现 ErrorIrresolvableConflict

single-sign-on - 在 Office 365 中使用第三方身份提供者

asp.net - 获取 ASP.NET 中 Azure AD 应用程序注册的所有 appRoles

rest - Microsoft Graph API 与旧版合作伙伴 CREST API 共享哪些功能