【问题标题】:EWS API: Anything I call update_item for a meeting, it ends up canceling the meeting for any attendeesEWS API:我为会议调用 update_item 的任何内容,最终都会取消任何与会者的会议
【发布时间】:2019-07-21 23:50:01
【问题描述】:

我正在使用 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"}}]}

【问题讨论】:

    标签: exchangewebservices


    【解决方案1】:

    如果您使用 Set_Item_Field 更新所需的与会者,这将覆盖当前属性,因此如果任何与会者不在更新的集合中,您实际上取消了这些与会者的会议。如果您想使用 Set_Item_Field 更新与会者,那么您需要包括该类型的所有与会者,因为您替换的收件人类型的集合没有附加到它。

    【讨论】:

    • 谢谢格伦。您是否知道 Exchange 是否必须是姓名和电子邮件的确切值才能不发送取消通知?我问是因为我尝试发送相同的电子邮件,但它似乎认为它是新与会者,这意味着它取消了会议,然后在 Outlook 中重新阅读。
    • 你应该先做一个 Get 来获取集合然后附加到它上面你不会错的。
    • 我确实先获得了一个 GET,这就是为什么这如此令人费解的原因。我尝试使用相同的,除了与会者姓名/电子邮件具有相同的大小写(通过检查原始肥皂请求验证这一点),它仍然首先取消活动。
    • 有些东西听起来不正确,那么我建议您发布您使用上述难以阅读的 XML,而不是发送到服务器的实际请求。它还缺少可能是您的问题的消息处置
    • 格伦,感谢您的宝贵时间!当我再次检查以比较发送的 XML 时,我注意到我的 XML 结构中的问题不正确!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2018-08-31
    相关资源
    最近更新 更多