2017-12-12 21 views
3

모든 사용자 일정을 ReadWrite로 응용 프로그램 관리자 권한을 위임했습니다. 그래프 API (베타)를 사용하고 있습니다. 회의실 용 Office365에서 리소스가 생성됩니다.Microsoft Graph API - 참석자에 대한 업데이트 이벤트가 업데이트되지 않습니다.

내가 PATCH /users/{id}/events/{id}

접근법 1을 사용하여 (예를 들어, 회의가 조기 종료) 진행되는 이벤트의 종료 시간을 변경하기 위해 노력하고있어 : 리소스 사서함의 일정에 이벤트를 패치

리소스 사서함의 이벤트 시작 또는 끝 시간 업데이트가 해당 이벤트의 참석자 일정에 전파되지 않습니다. 리소스 사서함의 일정은 업데이트되지만 이벤트는 모든 참석자에게 변경되지 않습니다..

예. ID가 12345 인 기존 모임이있는 리소스 사서함 [email protected]의 경우 회의 시작 시간이 오늘 16시 30 분이고 종료 시간이 UTC 17시라고 가정합니다. 현재 시간이 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