dsq1982 2014-07-18 11:01
浏览 112
已采纳

Exchange 2007 ews(Web服务) - 找出谁接受参加会议?

I'm brand new to using the Exchange EWS and haven't been able to find any reference to this in the documentation or online.

I'm connecting to my Exchange 2007 server and retrieving a list of calendar meetings for a given account using PHP SoapClient. This is working and is retrieving all the meetings as CalendarItem objects that I can then use in my PHP script.

However, the thing that I really need is to know who has accepted to attend the meetings. I gather that the DisplayTo property of the CalendarItem object tells us who has been invited, but surely some of them could have declined. So, if I want to know who will actually be there, how can I get this information?

This would seem like useful information to make available (e.g. to plan catering or whatever) so it seems unlikely that it would not be exposed through the web service, but I cannot find out how to discover this information.

Can anyone help?

edit: Just to clarify what is returned by the Exchange 2007 web service, this is what the service returns for each meeting:

[0] => stdClass Object
        (
            [ItemId] => stdClass Object
                (
                    [Id] => AAAQAHN0ZXBld0BNQkEuYWMud
                    [ChangeKey] => DwAAABYA
                )

            [ParentFolderId] => stdClass Object
                (
                    [Id] => AQAQAHN0ZXBld0BNQkEuYWM
                    [ChangeKey] => AQ
                )

            [ItemClass] => IPM.Appointment.Occurrence
            [Subject] => IT Meeting
            [Sensitivity] => Normal
            [DateTimeReceived] => 2013-09-11T13:06:27Z
            [Size] => 6724
            [Importance] => Normal
            [IsSubmitted] => 
            [IsDraft] => 
            [IsFromMe] => 
            [IsResend] => 
            [IsUnmodified] => 
            [DateTimeSent] => 2013-09-11T13:06:27Z
            [DateTimeCreated] => 2013-09-11T13:06:27Z
            [ReminderDueBy] => 2014-08-04T10:30:00Z
            [ReminderIsSet] => 1
            [ReminderMinutesBeforeStart] => 15
            [DisplayCc] => 
            [DisplayTo] => Bob, Frank, Tim, Alf, Juanita
            [HasAttachments] => 
            [Culture] => en-US
            [Start] => 2014-06-02T10:30:00Z
            [End] => 2014-06-02T12:00:00Z
            [IsAllDayEvent] => 
            [LegacyFreeBusyStatus] => Busy
            [Location] => Meeting Room
            [IsMeeting] => 1
            [IsRecurring] => 1
            [MeetingRequestWasSent] => 
            [IsResponseRequested] => 1
            [CalendarItemType] => Occurrence
            [MyResponseType] => Accept
            [Organizer] => stdClass Object
                (
                    [Mailbox] => stdClass Object
                        (
                            [Name] => Bob
                        )

                )

            [Duration] => PT1H30M
            [TimeZone] => (UTC) Dublin, Edinburgh, Lisbon, London
            [AppointmentReplyTime] => 2013-09-11T13:07:00Z
            [AppointmentSequenceNumber] => 0
            [AppointmentState] => 3
            [ConferenceType] => 0
            [AllowNewTimeProposal] => 1
            [NetShowUrl] => 
        )
  • 写回答

3条回答 默认 最新

  • dougang2749 2014-07-25 09:59
    关注

    This answer is a tentative solution, but it seems to be working as far as I can tell.

    So, to form a SOAP request using the PHP SOAPClient to get the appointment details for each appointment, as shown in the original question, I use the following:

    //Loop through each CalendarItem in the CalendarItems collection
    //Using a "by reference" pointer as I want to add the extra information to the original object.
    foreach($calendaritems as &$b){
        $NewSearch->Traversal = "Shallow";
        $NewSearch->ItemShape->BaseShape = "AllProperties";
        $NewSearch->ItemIds->ItemId = $b->ItemId;
        $result = $client->GetItem($NewSearch);
    
        //add the RequiredAttendees element to the original calendar item, just for convenience
        $b->RequiredAttendees = $result->ResponseMessages->GetItemResponseMessage->Items->CalendarItem->RequiredAttendees;
    }
    

    However, it seems that you can only view the ResponseType for meeting requests that the account you're connecting as was the organiser for. All other meetings show as "Unknown" as the ResponseType.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题