在 Exchange 中使用 EWS 获取会议室列表
了解如何使用 EWS 托管 API 或 EWS 从 Exchange 服务器获取组织中所有会议室列表的列表或单个会议室列表。
可以使用 EWS 托管 API 或 EWS 获取有关会议室以及会议室在组织中的分组方式的信息。 默认情况下,会议室列表不存在;管理员需要创建和组织它们。 通常,它们按位置或部门进行组织,如以下示例所示。
Contoso 会议室列表名称和电子邮件地址
会议室列表的名称 | 会议室列表Email地址 |
---|---|
大楼 11 会议室列表 |
Bldg11rooms@contoso.com |
健康科学大楼会议室列表 |
HSbldgrooms@contoso.edu |
会计楼层会议室 |
Acctfloor300@contoso.com |
会议室列表中的每个会议室都有与之关联的名称和电子邮件地址。
Contoso 会议室名称和电子邮件地址
聊天室的名称 | 会议室Email地址 |
---|---|
会议室 11/101 (8) AV |
Cf11101@contoso.com |
HS 演示实验室 (100) |
Hs101@contoso.edu |
会计 305 WB |
Acct305@contoso.com |
可以使用 ExchangeService.GetRoomLists EWS 托管 API 方法或 GetRoomLists EWS 操作获取包含所有会议室列表的列表。
通过使用 GetRooms EWS 托管 API 方法或 GetRooms EWS 操作提供其电子邮件地址,可以检索包含某个位置或部门的所有会议室的单个会议室列表。 如果具有与会议室列表关联的会议室集合,则可以搜索该集合,以通过电子邮件地址或查找名称中的关键字(如“AV”或“Lab”)来标识所需的会议室或会议室。
使用 EWS 托管 API 获取所有会议室列表
以下示例演示如何使用 GetRoomLists 方法获取包含组织中所有会议室列表的列表。
此示例假定已对 Exchange 服务器进行了身份验证,并且已获取名为 service 的 ExchangeService 对象。
// Return all the room lists in the organization.
// This method call results in a GetRoomLists call to EWS.
EmailAddressCollection myRoomLists = service.GetRoomLists();
// Display the room lists.
foreach (EmailAddress address in myRoomLists)
{
Console.WriteLine("Email Address: {0} Mailbox Type: {1}", address.Address, address.MailboxType);
}
使用 EWS 获取所有会议室列表
以下示例演示如何使用 GetRoomLists 操作获取组织的所有 RoomLists 的 集合。 这也是使用 EWS 托管 API 获取所有会议室列表时 EWS 托管 API 发送的 XML 请求。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010" />
</soap:Header>
<soap:Body>
<m:GetRoomLists />
</soap:Body>
</soap:Envelope>
服务器使用包含组织会议室列表的 GetRoomListsResponse 消息响应 GetRoomLists 请求。
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="868" MinorBuildNumber="8" Version="V2_9"
xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:GetRoomListsResponse ResponseClass="Success" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseCode>NoError</m:ResponseCode>
<m:RoomLists>
<t:Address>
<t:Name>Contoso Building 1 Room List</t:Name>
<t:EmailAddress>bldg1rooms@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>PublicDL</t:MailboxType>
</t:Address>
<t:Address>
<t:Name>Contoso Building 2 Room List</t:Name>
<t:EmailAddress>bldg2rooms@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>PublicDL</t:MailboxType>
</t:Address>
<t:Address>
<t:Name>Contoso Building 3 Room List</t:Name>
<t:EmailAddress>bldg3rooms@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>PublicDL</t:MailboxType>
</t:Address>
</m:RoomLists>
</m:GetRoomListsResponse>
</s:Body>
</s:Envelope>
使用 EWS 托管 API 获取会议室列表中的所有会议室
以下示例演示如何使用 GetRooms 方法获取会议室列表中的会议室集合。
EmailAddress myRoomList = "bldg3rooms@contoso.com";
// This method call results in a GetRooms call to EWS.
System.Collections.ObjectModel.Collection<EmailAddress> myRoomAddresses = service.GetRooms(myRoomList);
// Display the individual rooms.
foreach (EmailAddress address in myRoomAddresses)
{
Console.WriteLine("Email Address: {0}", address.Address);
}
使用 EWS 获取会议室列表中的所有会议室
以下示例演示如何使用 GetRooms 操作获取 RoomList中的会议室列表。 这也是使用 EWS 托管 API 获取会议室列表中所有会议室时 EWS 托管 API 发送的 XML 请求。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010" />
</soap:Header>
<soap:Body>
<m:GetRooms>
<m:RoomList>
<t:EmailAddress>bldg3rooms@contoso.com</t:EmailAddress>
</m:RoomList>
</m:GetRooms>
</soap:Body>
</soap:Envelope>
服务器使用包含会议室列表中的会议室的 GetRoomsResponse 消息响应 GetRooms请求。
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="873" MinorBuildNumber="9"
Version="V2_9" xmlns:h="http://scemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsd="http://www.w3org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:GetRoomsResponse ResponseClass="Success" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://scemas.microsoft.com/exchange/services/2006/types">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Rooms>
<t:Room>
<t:Id>
<t:Name>Conf Room 3/101 (16) AV</t:Name>
<t:EmailAddress>cf3101@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>Mailbox</t:MailboxType>
</t:Id>
</t:Room>
<t:Room>
<t:Id>
<t:Name>Conf Room 3/102 (8) AV</t:Name>
<t:EmailAddress>cf3102@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>Mailbox</t:MailboxType>
</t:Id>
</t:Room>
<t:Room>
<t:Id>
<t:Name>Conf Room 3/103 (14) AV RoundTable</t:Name>
<t:EmailAddress>cf3103@contoso.com</t:EmailAddress>
<t:RoutingType>SMTP</t:RoutingType>
<t:MailboxType>Mailbox</t:MailboxType>
</t:Id>
</t:Room>
</m:Rooms>
</m:GetRoomsResponse>
</s:Body>
</s:Envelope>