更新MS Bookings约会导致Teams会议消失的问题求助
解决MS Bookings约会PATCH更新serviceNotes时Teams会议被移除的问题
方案1:PATCH请求显式保留在线会议属性
Graph API的PATCH为部分更新,若未显式指定在线会议相关属性,系统可能默认重置这些字段导致Teams会议丢失。更新时需从现有约会中读取以下属性,与serviceNotes一同提交:
isLocationOnline: trueonlineMeetingUrl(原约会生成的Teams会议链接)onlineMeetingProvider: "teamsForBusiness"
示例PATCH请求体:
{ "serviceNotes": "更新后的元数据内容", "isLocationOnline": true, "onlineMeetingUrl": "https://teams.microsoft.com/l/meetup-join/...", "onlineMeetingProvider": "teamsForBusiness" }
方案2:用Bookings扩展属性存储元数据
将元数据从serviceNotes迁移至自定义扩展属性,修改扩展属性不会影响会议关联字段,且仅需Bookings专属权限(无需全局日历权限)。
操作步骤:
- 注册扩展属性(仅需执行一次):
POST https://graph.microsoft.com/v1.0/applications/{你的应用ID}/extensionProperties Content-Type: application/json { "name": "BookingMetadata", "dataType": "String", "targetObjects": ["bookingAppointment"] }
- 创建约会时存入元数据:
{ "isLocationOnline": true, "extension_{扩展属性ID}_BookingMetadata": "你的元数据内容", // 其他必填属性:startDateTime、endDateTime、customerId等 }
- 更新元数据时仅操作扩展属性:
{ "extension_{扩展属性ID}_BookingMetadata": "更新后的元数据内容" }
方案3:替换serviceNotes为customerNotes字段
若业务逻辑允许,使用customerNotes字段存储元数据。该字段用于记录客户备注,修改时不会触发Teams会议移除:
示例PATCH请求体:
{ "customerNotes": "存储的元数据内容" }
内容的提问来源于stack exchange,提问作者chris05
相关产品推荐
相关产品推荐

