PHP-EWSを使用して、代わりにカレンダー アイテム (予定) を作成するときにイベントを発生させようとしています。現在、メールが送信されたときにイベントを発生させることができます。
$subscribe_request = new \EWSType_SubscribeType();
$pushSubscription = new \EWSType_PushSubscriptionRequestType();
$pushSubscription->StatusFrequency = 1;
$pushSubscription->URL = 'http://someserver/log.php';
$folderIDs = new \EWSType_NonEmptyArrayOfBaseFolderIdsType();
$eventTypes = new \EWSType_NonEmptyArrayOfNotificationEventTypesType();
$folderIDs->DistinguishedFolderId = new \EWSType_DistinguishedFolderIdType();
$folderIDs->DistinguishedFolderId->Id = \EWSType_DistinguishedFolderIdNameType::INBOX;
$eventTypes->EventType = "NewMailEvent";
$pushSubscription->FolderIds = $folderIDs;
$pushSubscription->EventTypes = $eventTypes;
$subscribe_request->PushSubscriptionRequest = $pushSubscription;
return $this->ews->Subscribe($subscribe_request);
log.php
class ewsService {
public function SendNotification($arg) {
file_put_contents("C:\\exchangelogs\\log_".time().".txt", print_r($arg,1));
$result = new EWSType_SendNotificationResultType();
$result->SubscriptionStatus = 'OK';
//$result->SubscriptionStatus = 'Unsubscribe';
return $result;
}
}
$opts = array();
$server = new SoapServer(
'NotificationService.wsdl',
array('uri' => 'http://someserver/log.php'));
$server->setObject($service = new ewsService());
$server->handle();
毎分「キープ アライブ メッセージ」が送信され、SendNotification
関数が呼び出されます。メールが送信されたときも同じことが起こります(Outlookなどを使用)。
これはすべてうまくいきます。
ただし、予定などの予定表アイテムが作成されたときにも同じことをしたいと考えています。DistinguishedFolderIdNameType
toCALENDAR
とEventType
toを変更しようとしましCreatedEvent
たが、予定が作成されたときにメッセージが表示されません。
どんな助けでも大歓迎です。