add attachment端点似乎有问题。日历收件人看不到附加到日历事件的文件。附件对事件创建者可见。直到最近,我的代码已经运行了几个月,这让我相信这是一种回归。
重现步骤
- 必须有两个用户 - 创建者和接收者。
- 通过
https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events
创建事件 - 通过
https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}/attachments
将文件附加到事件中 - 以创建者身份转到 Office 365 Web UI。该事件看起来不错并且包含附件。
- 作为创建者查询 Microsoft graph API。事件看起来不错。
hasAttachments
是true
并通过 API 列出附件按预期工作。 - 以收件人身份转到 Office 365 Web UI。该事件缺少附件(有关该事件的其他所有信息均准确)。
- 作为收件人查询 Microsoft Graph API。
hasAttachments
是false
并且您无法使用图形 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 的解决方法解决了该问题 - 在附件之后添加与会者。工作流程如下所示:
- 通过 POST 至
https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events
创建事件(不包括与会者) . - 通过 POST 将文件附加到事件
https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}/attachments
- 通过 PATCH 将第 1 步中的事件与与会者一起更新为
https://graph.microsoft.com/v1.0/me/calendars/{calendarId}/events/{eventId}
一些额外的请求,但它完成了工作。
关于Office365 REST API - 日历事件附件对收件人不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714919/