使用Microsoft Graph API同步Outlook日历的共享事件恢复问题
解决Microsoft Graph API同步Outlook共享日历的两个问题
问题1:修改他人组织的共享事件后,仅自身日历更新,组织者日历无变化
这是因为非组织者默认仅拥有修改自身日历副本的权限,且API调用默认操作的是你自己的日历事件:
- 先确认组织者是否给了你编辑事件本身的权限(不是仅允许修改响应状态),在Outlook中,组织者需要将你设置为「可以编辑事件」的参与者
- 调用API时,要直接操作组织者日历中的事件实例,而非你自己日历里的副本:
其中PATCH /users/{organizer-id}/calendar/events/{event-id}organizer-id可从你本地事件副本的organizer.id字段获取
问题2:无法获取组织者的原始事件数据,API返回自身修改后的版本
你查询/me/calendar/events/{event-id}得到的是自己日历里的修改后副本,要获取组织者的原始数据,需直接查询组织者的日历:
- 使用以下请求获取原始事件:
GET /users/{organizer-id}/calendar/events/{event-id} - 若想重置自己的本地副本到原始状态,可将获取到的原始
start、end等字段,通过PATCH /me/calendar/events/{event-id}覆盖你自己的事件副本
关键权限说明
确保你的应用已申请以下权限:
Calendars.ReadWrite:用于读写自己的日历Calendars.ReadWrite.Shared:用于读写共享的他人日历
内容的提问来源于stack exchange,提问作者samiullah ilyas
相关产品推荐
相关产品推荐

