3

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などを使用)。

これはすべてうまくいきます。

ただし、予定などの予定表アイテムが作成されたときにも同じことをしたいと考えています。DistinguishedFolderIdNameTypetoCALENDAREventTypetoを変更しようとしましCreatedEventたが、予定が作成されたときにメッセージが表示されません。

どんな助けでも大歓迎です。

4

0 に答える 0