【发布时间】:2014-03-05 23:01:40
【问题描述】:
我在弄清楚如何通过 EWS Api 获取资源(房间)的日历时遇到问题。作为 PHP 包装器/库,我使用以下内容:https://github.com/jamesiarmes/php-ews
$ews = new ExchangeWebServices('server', 'user', 'pw');
$request = new EWSType_FindItemType();
$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;
$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;
$request->CalendarView = new EWSType_CalendarViewType();
$request->CalendarView->StartDate = '2014-02-05T15:18:34+03:00';
$request->CalendarView->EndDate = '2014-06-12T15:18:34+03:00';
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR;
$request->ParentFolderIds->DistinguishedFolderId->Mailbox->EmailAddress = "roomname@adress.xxx";
$response = $ews->FindItem($request);
我尝试将 Mailbox->EmailAddress 添加到请求中,但出现以下错误:
[MessageText] => SMTP 地址没有与之关联的邮箱。 [ResponseCode] => ErrorNonExistentMailbox
我想这里的问题是,房间没有与之关联的具体邮箱,所以它找不到它。有什么解决办法吗? 我可以直接访问该文件夹吗?但是如何找到该房间日历的 ID?
【问题讨论】:
-
您是否尝试过使用 EWSEditor 之类的工具来查看房间资源?我可以连接到 EWS 并在“其他”下使用“查找约会”并输入邮箱并提取约会。这样,如果您可以连接并获取约会,则可以查看约会并查看文件夹 ID 和您可能需要的大多数其他信息。它可以提供有关一切是否正确设置的线索。检查后使编程更容易。我一直远离 PHP 版本,因为据我所知,它可能会在获取房间资源时遇到问题。我可以提供更多帮助,但我选择了 C#。
标签: php api exchangewebservices