2017-12-12 34 views
3

すべてのユーザーカレンダーをReadWriteにアプリケーション管理アクセスを委任しました。私はグラフAPI(ベータ版)を使用しています。会議室用のOffice365でリソースが作成されます。Microsoft Graph API - 更新イベントが出席者のために更新されない

私はPATCH /users/{id}/events/{id}

アプローチ1を使用して(例えば会議が早期終了)進行中のイベントの終了時刻を変更しようとしています:リソースメールボックスのカレンダーでのイベントへのパッチ適用

リソースメールボックスのイベントの開始時刻または終了時刻の更新は、そのイベントの出席者のカレンダーには反映されません。リソースメールボックスのカレンダーは更新されますが、イベントはすべての出席者に対して変更されません。

など。既存の会議IDが12345のリソースメールボックス[email protected]の場合会議の開始時間が今日16:30、終了時間が17:00 UTCであるとします。現在の時刻がUTCの16:50とします。

$microsoftEvent = json_encode([ 
            'end' => [ 
             'dateTime' => '2017-12-13T16:50:00.0000000', 
             'timeZone' => 'UTC' 
            ] 
           ], JSON_UNESCAPED_SLASHES); 

$returnedEvent = $graph->createRequest("patch", "https://stackoverflow.com/users/[email protected]/events/12345") 
           ->attachBody($microsoftEvent) 
           ->setReturnType(\Microsoft\Graph\Model\Event::class) 
           ->execute(); 

アプローチ2:主催者のカレンダーにイベントをパッチ

主催者が[email protected]であり、そしてこのユーザーのカレンダー内のイベントIDがでiCalUIdを介して得られたことをその上に会議の仮定$filterでGETを分離し、56789であることが判明した。この場合

$microsoftEvent = json_encode([ 
            'end' => [ 
             'dateTime' => '2017-12-13T16:50:00.0000000', 
             'timeZone' => 'UTC' 
            ] 
           ], JSON_UNESCAPED_SLASHES); 

$returnedEvent = $graph->createRequest("patch", "https://stackoverflow.com/users/[email protected]/events/56789") 
           ->attachBody($microsoftEvent) 
           ->setReturnType(\Microsoft\Graph\Model\Event::class) 
           ->execute(); 

は、主催者のイベントが更新されますが、リソースメールボックスをいただければ幸いです

Your meeting request was declined. The invitation was declined because it occurred in the past. 

何かアドバイスを返信します。

+0

イベントにパッチを当てたユーザーは、イベントの主催者ですか? –

+0

@MarcLaFleurフォローアップしていただきありがとうございます。私のユースケースは、現在進行中のイベントを終了(グラフAPI経由)することです。これは、イベントの終了時間を変更することを意味します。リソースメールボックスのイベントがパッチされている場合、出席者は通知を受け取らず、主催者のイベントがパッチされると、リソースメールボックスは 'あなたの出席依頼が拒否されました。招待状は過去に発生したために拒否されました。「 – karel

+0

その流れは複雑で、簡単な説明だけでその頭を包み込むのはかなり難しいです。あなたの質問を更新し、この動作を再現するコード/呼び出しの例を段階的に追加できますか? –

答えて

1

リソースのイベントを更新しても、リソースは実質的に主催者ではなく主催者であるため、何も実行されません。したがって、アプローチ1は期待される動作です。主催者のイベントを更新する必要があり、リソースを含むすべての出席者に更新が送信されます。

これは、過去にイベントが開始されたため、リソースが「拒否」応答で応答していることがわかりました。あなたがその問題を回避できるかどうかはわかりません。リソースを監視しているカレンダーエージェントが、すでに進行中のイベントを変更できないように思えます。

+0

答えをありがとう。これは、管理ポータルを介してOffice365で作成される「デフォルト」のリソースです。すでに開始されているイベントを変更できるように更新できる設定はありますか? – karel

+0

私はOffice365のリソース設定を見ましたが、カレンダーは、1)ミーティングの繰り返し、2)作業時間のスケジューリング、3)予約ウィンドウと期間制限、および4)自動受諾要求のためだけに設定できるようです。 'Set-CalendarProcessing'を介して該当するフラグが表示されません。それはこれが可能であるべきであるように感じる? – karel

+0

別の質問として[ここ](https://stackoverflow.com/questions/47833599/exchange-online-unable-to-change-end-time-of-event-in-progress) – karel

関連する問題