使用 Outlook 日历休息 API 添加与会者会删除较旧的与会者

Posted

技术标签:

【中文标题】使用 Outlook 日历休息 API 添加与会者会删除较旧的与会者【英文标题】:Adding attendee using Outlook Calendar rest API removes older attendees 【发布时间】:2017-04-24 12:35:18 【问题描述】:

我正在使用 Outlook 日历休息 API。 创建活动时,参与者已成功添加。

稍后,如果我想更新活动并再添加一位与会者,我正在使用 PATCH。但它会删除该活动的任何先前参与者。

创建活动的 URL

发布https://outlook.office.com/api/v2.0/me/events

身体参数


  "Subject": "Discuss the Calendar REST API 2",
  "Body": 
    "ContentType": "html",
    "Content": "I think it will meet our requirements!"
  ,
  "Start": 
      "DateTime": "2017-04-25T18:00:00",
      "TimeZone": "Asia/Kolkata"
  ,
  "End": 
      "DateTime": "2017-04-25T19:00:00",
      "TimeZone": "Asia/Kolkata"
  ,
  "Attendees": [
    
      "EmailAddress": 
        "Address": "abc@xyz.com",
        "Name": "ABC"
      ,
      "Type": "Required"
    
  ]

更新事件的 URL

补丁https://outlook.office.com/api/v2.0/me/events/eventId

身体参数


  "Attendees": [
    
      "EmailAddress": 
        "Address": "def@xyz.com",
        "Name": "def"
      ,
      "Type": "Required"
    
 ]

执行此操作后,之前的与会者“abc@xyz.com”被删除并收到取消的活动邮件,新的与会者“def@xyz.com”被添加。

请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

是的,这是预期的行为。如果您使用的是 PATCH api,则需要将您之前添加的与会者列表提供给它。否则,它认为你已经删除了它们。因此,当您使用 GET api(获取事件)时,保存与会者列表并在此列表中添加或删除,然后使用 PATCH 调用发送。

【讨论】:

有没有办法只添加一个与会者而不通过所有现有与会者的列表 否,与会者数组被 PATCH api 覆盖,因此,如果旧与会者不在新数组中,则假定您已将其删除。这是有道理的,否则,您如何从活动中删除与会者? (因为我们没有删除与会者 api 调用) 假设我的活动有 500 名参与者。如果我只想添加一个,我必须发送所有现有 500 名与会者的数据。它不会影响我的应用程序的性能吗? 我还面临一个问题。如果我创建了一个活动,然后我发送了一个补丁请求来更改与会者的响应。例如。 “与会者”:[“类型”:“必填”,“状态”:响应“:“接受”,“时间”:“0001-01-01T00:00:00Z”,电子邮件地址“:”名称": "abc", "Address": "abc@xyz.com" ] 然后接受的回复显示在组织者的日历中,但不在与会者的日历中。如何在与会者的日历中也接受会议邀请。 您的第一个问题是大约有 500 名与会者,这不会造成任何性能问题,因为您的阵列只是一个简单的电子邮件地址阵列。关于您的第二个问题,您是否尝试代表与会者接受/拒绝会议请求?我不认为这是可能的。与会者本人必须使用此处列出的 api 调用来响应请求:msdn.microsoft.com/en-us/office/office365/api/… 如果您对如何使用它们有任何疑问,请告诉我!

以上是关于使用 Outlook 日历休息 API 添加与会者会删除较旧的与会者的主要内容,如果未能解决你的问题,请参考以下文章

UCWA 可以检索已安排的 Microsoft Outlook 会议吗?

Cordova 日历插件添加与会者

如何以编程方式将访客与会者添加到保存时的 GSuite 日历事件

通过 API 共享 Outlook 日历

对于 Outlook 日历 API 中的任何用户,两个或多个事件的事件 ID 是不是相同?

检索显示奇怪行为的日历项目(Outlook API、WebDAV)