EWS API:我为会议调用的任何update_item,最终都会取消所有与会者的会议

时间:2019-02-28 06:02:00

标签: exchangewebservices

我正在使用EWS API(针对Exchange 2010),我无法弄清楚为什么我提出任何要求更新日历会议/项目的请求。有什么我想念的东西吗?我可以从Outlook更改为会议,而无需向除组织者以外的所有与会者发送取消电子邮件。

以下是SOAP请求相关部分的样本。我替换了实际与会者的电子邮件地址,项目ID和更改密钥。

{:send_meeting_invitations_or_cancellations=>"SendOnlyToChanged",:conflict_resolution=>"AutoResolve", :item_changes=>[{:updates=>[{:set_item_field=>{:field_uRI=>{:field_uRI=>"item:Subject"}, :calendar_item=>{:sub_elements=>[{:subject=>{:text=>"Thursday 11AM Recurring"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"item:Body"}, :calendar_item=>{:sub_elements=>[{:body=>{"BodyType"=>"HTML", :text=>"HI"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:Location"},:calendar_item=>{:sub_elements=>[{:location=>{:text=>"LA, CA"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:Start"}, :calendar_item=>{:sub_elements=>[{:start=>{:text=>"2019-03-07T19:00:00.0000000"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:StartTimeZone"}, :calendar_item=>{:sub_elements=>[{:start_time_zone=>{"Id"=>"UTC"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:End"}, :calendar_item=>{:sub_elements=>[{:end=>{:text=>"2019-03-07T19:30:00.0000000"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:EndTimeZone"},:calendar_item=>{:sub_elements=>[{:end_time_zone=>{"Id"=>"UTC"}}]}}}, {:set_item_field=>{:field_uRI=>{:field_uRI=>"calendar:RequiredAttendees"},:calendar_item=>{:sub_elements=>[{:required_attendees=>{:sub_elements=>[ {:mailbox=>{:name=>"Joe ABC",:email_address=>"joe@abc.com", :routing_Type=>"SMTP"}}, {:mailbox=>{:name=>"John ABC", :email_address=>"john@abc.com",:routing_Type=>"SMTP"}}]}}]}}}], :item_id=>{:id=>"AAMkAGJjNWIzNzI2LTM1N2YtNDVkMi05NzU5LTRj", :change_key=>"DwAAABYAAADWK9s0Y5iSSLP"}}]}

1 个答案:

答案 0 :(得分:0)

如果使用Set_Item_Field更新所需的与会者,这将覆盖当前属性,因此,如果任何与会者不在更新的集合中,则可以有效地取消这些与会者的会议。如果要使用Set_Item_Field更新与会者,则需要包括该类型的所有与会者,因为您将集合替换为收件人类型而不附加到该收件人。