2014-08-28 1 views
2

API 설명서 Try It API Explorer의 도구를 사용하면서 회의실 일정과 관련된 Google 캘린더 일정에서 참석자를 일부 제거하려고합니다. 이 달력을 통해 관리자 권한이있는 도메인 관리자 계정,Google 캘린더 API Google API 탐색기를 사용하여 참석자 목록에서 참석자를 제거하지 않음

I 이벤트에서이 참석자 삭제 요청 본문을 보내고있다을 사용하여 권한의 API 결과는 200 OK이지만, 참석자 .. 남아

새 참석자를 추가하거나 상태를 업데이트하려고했는데 참석자를 제거하는 것이 아니라 정상적으로 작동합니다.

신체가 내가 무엇을 놓치고 있는지 알고 있습니까? 요청

도구 그것을 시도 또한 가스를 통해이를 사용하여 시도하고 나는 같은 문제가 발생하고있어,하지만 난 공식 API를 시도 한 모든 자체 프로그래밍 문제를 폐기

PATCH 
https://www.googleapis.com/calendar/v3/calendars/supportworld.com.ar_34373XXXXXXXXXXX2%40resource.calendar.google.com/events/osrd3lXXXXXXXolks?fields=attendees%2Cid&key={YOUR_API_KEY} 

Content-Type: application/json 
Authorization: Bearer ya29.bwAXXXXXXXXJOeCUAAADDYWT-QXXXXXXXXXXrc_eGP6Lk7CXXXXXXXXJ6130__ci_-_YXXXXxs 
X-JavaScript-User-Agent: Google APIs Explorer 

{ 
"attendees": [ 
    { 
    "organizer": true, 
    "email": "[email protected]", 
    "responseStatus": "accepted", 
    "displayName": "AAAAAAA" 
    }, 
    { 
    "self": true, 
    "resource": true, 
    "email": "[email protected]om", 
    "responseStatus": "accepted", 
    "displayName": "Cafetera" 
    } 
], 
"id": "osrd3lXXXXXXXolks 
" 
} 

응답

200 OK 

cache-control: no-cache, no-store, max-age=0, must-revalidate 
content-encoding: gzip 
content-length: 294 
content-type: application/json; charset=UTF-8 
date: Thu, 28 Aug 2014 16:15:06 GMT 
etag: "XXXXXXXXX" 
expires: Fri, 01 Jan 1990 00:00:00 GMT 
pragma: no-cache 
server: GSE 

{ 
"id": "osrd3lids0gkoeaggp2c95olks", 
"attendees": [ 
    { 
    "email": "[email protected]", 
    "displayName": "AAAAAAA", 
    "organizer": true, 
    "responseStatus": "accepted" 
    }, 
    { 
    "email": "[email protected]", 
    "displayName": "YYYYYYY", 
    "responseStatus": "accepted" 
    }, 
    { 
    "email": "[email protected]", 
    "displayName": "BBBBBB", 
    "responseStatus": "needsAction" 
    }, 
    { 
    "email": "[email protected]om", 
    "displayName": "Cafetera", 
    "self": true, 
    "resource": true, 
    "responseStatus": "accepted" 
    } 
] 
} 

항목 :

{ 
    "email": "[email protected]", 
    "displayName": "YYYYYYY", 
    "responseStatus": "accepted" 
    }, 
    { 
    "email": "[email protected]", 
    "displayName": "BBBBBB", 
    "responseStatus": "needsAction" 
    } 

은 더 이상 존재하지 않아야합니다. 그러나이 문제에 대한 도움이 필요합니다.

답변

2

나는 그걸 작동시킬 수있었습니다. API 탐색기 도구에 문제가 있다고 생각합니다.

특히 패치 본문을 지정하는 곳에서는 참석자 객체에 대한 JSON 섹션을 추가하거나 제거 할 수있는 구조화 된 편집기가 있습니다. 구조화 된 편집기를 사용하여 목록에서 참석자를 제거한 다음 자유형 편집기로 전환하면 참석자가 여전히있었습니다. 곤충!

자유형 편집기에서 원하는 참석자 블록을 다시 제거하고 실행하면 모든 것이 제대로 작동합니다. 참석자가 실제로 제거되었다는 GET을 사용하여 별도의 탭에서 확인했습니다.

0

나는 그것이 C#으로 작업을 가지고있다 (다른 편집자에 도착하려면 패치 본문 텍스트 필드의 오른쪽 상단에있는 드롭 다운 단추가.가), 나는 그것이 작동 다른 언어로 생각 같은 방식으로.

원치 않는 참석자를 목록에서 제거하려고 시도했지만 작동하지 않았습니다.

eventItem.Attendees.Remove(new EventAttendee { Email = "<to be removed>@gmail.com" }); 

나는이 지점에 도달했다고 상상해보십시오.

하지만 참석자가없는 다른 목록으로 목록을 바꾸면 작동하고 다른 참석자에게는 변경 사항에 대한 알림도 표시되지 않았습니다.

eventItem.Attendees = eventItem.Attendees.Where(a => a.Email != "<to be removed>@gmail.com").ToList(); 

물론 나중에 패치/업데이트하십시오.

service.Events.Patch(eventItem, "primary", eventItem.Id).Execute();