Как получить доступ к приглашению на собрание для события календаря через веб-службы Exchange?(и PHP и SOAP) - PullRequest
2 голосов
/ 23 июля 2011

Есть ли способ получить (и изменить) MeetingRequests через веб-службы Exchange? В частности, через PHP и SOAP.

Когда я пытался явно создать MeetingRequest с CreateItem, я получил ошибку, в которой говорилось, что MeetingRequest был недопустимым типом для CreateItem и что MeetingRequest создаются автоматически при создании CalendarItems с соответствующими MessageDispositions. Однако создание CalendarItem и его НЕ отправка, а затем использование GetItem для извлечения деталей не привели к приглашению на собрание (то есть еще не существовало).

Насколько я могу судить, MeetingRequests создаются и отправляются одновременно, и между ними нет возможности редактировать их. Я надеюсь, что я не прав. Я не прав?

В конечном итоге я пытаюсь добавить вложения в приглашения на собрания. Прямо сейчас я могу добавлять вложения к собранию, но не к запросу (т. Е. Когда собрание открывается в Календаре, вложение открывается нормально; при получении приглашения на собрание (в папке входящих сообщений) вложение не может быть открыто).

1 Ответ

4 голосов
/ 23 июля 2011

Да, это возможно.

Сначала создайте встречу:

      <m:CreateItem SendMeetingInvitations="SendToNone">
    <m:SavedItemFolderId>
      <t:DistinguishedFolderId Id="calendar" />
    </m:SavedItemFolderId>
    <m:Items>
      <t:CalendarItem>
        <t:Subject>testsubject</t:Subject>
        <t:Body BodyType="Text">testbody</t:Body>
        <t:Start>2011-07-24T09:36:58+02:00</t:Start>
        <t:End>2011-07-24T10:36:58+02:00</t:End>
      </t:CalendarItem>
    </m:Items>
  </m:CreateItem>

Затем добавьте приложения к встрече:

      <m:CreateAttachment>
    <m:ParentItemId Id="itemid" />
    <m:Attachments>
      <t:FileAttachment>
        <t:Name>test.pdf</t:Name>
        <t:IsInline>false</t:IsInline>
        <t:IsContactPhoto>false</t:IsContactPhoto>
        <t:Content>base64 encoded content here</t:Content>
      </t:FileAttachment>
    </m:Attachments>
  </m:CreateAttachment>

И, наконец, добавьте получателей и обновите собрание.

      <m:UpdateItem ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendToAllAndSaveCopy">
    <m:ItemChanges>
      <t:ItemChange>
        <t:ItemId Id="itemid of the original item" ChangeKey="changekey" />
        <t:Updates>
          <t:SetItemField>
            <t:FieldURI FieldURI="calendar:RequiredAttendees" />
            <t:CalendarItem>
              <t:RequiredAttendees>
                <t:Attendee>
                  <t:Mailbox>
                    <t:Name>Someone</t:Name>
                    <t:EmailAddress>mailaddress</t:EmailAddress>
                  </t:Mailbox>
                </t:Attendee>
              </t:RequiredAttendees>
            </t:CalendarItem>
          </t:SetItemField>
        </t:Updates>
      </t:ItemChange>
    </m:ItemChanges>
  </m:UpdateItem>

Это добавит вложение к приглашению.

...