내가이 글에서 설명한 것과 동일한 문제가 발생하고 나면 이벤트를 업데이트 할 수 있습니다 : 나는 이벤트를 생성하면,Google 캘린더 API에만
Google Calendar api v3 re-update issue
즉 한 번 Google 캘린더 API를 사용하여 업데이트 (v3), 더 이상 이벤트를 업데이트 할 수 없습니다. 내가 시도 할 때, 나는 400 - Invalid value response를 얻는다. (FWIW 나는 PHP에서 일하고있다.)
앞서 언급 한 게시물에서 제공되는 리드에 이어 etags를 사용하여 문제를 해결하려고했습니다 (비록 그들이 어떻게 작동하는지 내 이해는 제한적 임). 기본적으로 이벤트 업데이트시 API는 응답에 etag를 반환하고, 이제 데이터베이스에 저장합니다. 그런 다음 (N> 1) 업데이트를 위해, 나는 HTTP 헤더에 데이터베이스에서 현재 ETAG을 끌어와 같습니다 http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning
:
는Content-Type: application/json
Authorization: OAuth [token]
If-Match: [etag]
이 여기의 "항목 업데이트"헤더 아래 정보를 다음과 (!) 참고는 : 위의 구글 심판에서 IF-Match 헤더는 ETAG 큰 따옴표와
If-Match: "S0wCTlpIIip7ImA0X0QI"
로 표시됩니다. 난 처음으로 업데이 트 응답에 그들을 받게 정확히 같은 큰 따옴표로 데이터베이스에 etags을 저축 해요. curl_setopt/HTTPHEADER를 사용하여 헤더에 추가 할 때 따옴표 또는 다른 것을 이스케이프해야합니까?
이 etag If-Match 일을 구현 했음에도 불구하고 여전히 동일한 400 - Invalid value 응답을 얻고 있습니다. 첫 번째 업데이트가 정상적으로 작동하므로 요청 본문이 유효하다는 것을 알고 있습니다. 후속 업데이트를 둘러싼 몇 가지 추가 문제가 있습니다.
도움을 주시면 감사하겠습니다.
것은 당신이-매치 경우 업데이트하고 항목을 획득함으로써 시작 사용 항목을 업데이트하려면 "말의 지침에 따라 해드립니다 원하는 항목을 변경 한 다음 수정 된 항목을 포함하는 새로운 PUT 요청을 만드십시오. " –
다음 주셔서 감사합니다. 방금 기존 이벤트를 삭제하고 새 이벤트를 만드는 "업데이트"를 구현했습니다. –