EWS записывает событие календаря в календарь пользователя «Указанная папка не найдена в магазине». - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать собрание для пользователя с комнатой, используя API EWS.Когда я отправляю приведенный ниже SOAP-запрос, я получаю сообщение об ошибке «Указанная папка не найдена в хранилище».Что-то не так с запросом SOAP или что-то нужно изменить на сервере Exchange?

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/messages">
  <SOAP-ENV:Header>
    <ns1:RequestServerVersion Version="Exchange2007"/>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <ns2:CreateItem SendMeetingInvitations="SendToAllAndSaveCopy">
      <ns2:SavedItemFolderId>
        <ns1:DistinguishedFolderId Id="calendar">
          <ns1:Mailbox>
            <ns1:EmailAddress>[useremail@website.com]</ns1:EmailAddress>
          </ns1:Mailbox>
        </ns1:DistinguishedFolderId>
      </ns2:SavedItemFolderId>
      <ns2:Items>
        <ns1:CalendarItem>
          <ns1:ItemClass>IPM.Appointment</ns1:ItemClass>
          <ns1:Subject>Test</ns1:Subject>
          <ns1:Sensitivity>Normal</ns1:Sensitivity>
          <ns1:Importance>Normal</ns1:Importance>
          <ns1:Start>2018-12-29T06:49:00+00:00</ns1:Start>
          <ns1:End>2018-12-29T06:50:00+00:00</ns1:End>
          <ns1:RequiredAttendees>
            <ns1:Attendee>
              <ns1:Mailbox>
                <ns1:Name>Test user</ns1:Name>
                <ns1:EmailAddress>[useremail@website.com]</ns1:EmailAddress>
                <ns1:RoutingType>SMTP</ns1:RoutingType>
              </ns1:Mailbox>
            </ns1:Attendee>
          </ns1:RequiredAttendees>
          <ns1:Resources>
            <ns1:Attendee>
              <ns1:Mailbox>
                <ns1:EmailAddress>[roomemail@website.com]</ns1:EmailAddress>
                <ns1:RoutingType>SMTP</ns1:RoutingType>
              </ns1:Mailbox>
            </ns1:Attendee>
          </ns1:Resources>
        </ns1:CalendarItem>
      </ns2:Items>
    </ns2:CreateItem>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

1 Ответ

0 голосов
/ 31 декабря 2018

Эта ошибка означает, что у вас нет прав на основной календарь, на котором вы пытаетесь создать встречу.Возможно, вам лучше использовать EWS Impersonation в описанном вами старшине, который позволит вам создать Назначение от имени пользователя (вместо От имени). См. https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-configure-impersonation

. С вашим кодом вы должны использовать Exchange2007.

<SOAP-ENV:Header>
 <ns1:RequestServerVersion Version="Exchange2007"/>
</SOAP-ENV:Header>

RTM-версия Exchange имела другой формат Id, поэтому я бы предложил по крайней мере Exchange2007_SP1 или используйте версию, с которой работает код, см. https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/ews-schema-versions-in-exchange

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...