Я столкнулся с той же проблемой, как описано в этом сообщении:
Проблема повторного обновления API Календаря Google v3
А именно, как только я создаю событие иобновив его один раз с помощью API Календаря Google (v3), я больше не могу обновлять событие.Когда я пытаюсь это сделать, я получаю 400-недействительный ответ.(FWIW я работаю в PHP).
Следуя указаниям, приведенным в посте, на который я ссылался выше, я попытался решить проблему с помощью etags (хотя, по общему признанию, мое понимание того, как они работают, ограничено).По сути, при обновлении события API возвращает etag в своем ответе, который я сейчас сохраняю в своей базе данных.Затем для последующих (n> 1) обновлений я извлекаю текущий etag из базы данных и включаю его в заголовок http:
Content-Type: application/json
Authorization: OAuth [token]
If-Match: [etag]
Это следует за информацией в заголовке «Обновление записей» здесь: http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning
Sidenote: в приведенной выше ссылке Google, заголовок If-Match показан как
If-Match: "S0wCTlpIIip7ImA0X0QI"
с двойными кавычками вокруг etag.Я сохраняю etags в базе данных с двойными кавычками, точно так же, как я получаю их в ответе на первое обновление.Нужно ли экранировать кавычки или что-то еще при добавлении в заголовок с помощью curl_setopt / HTTPHEADER?
Несмотря на реализацию этого etag-элемента If-Match, я все еще получаю тот же ответ 400 - Неверное значение.Я знаю, что мои тела запросов действительны, потому что первое обновление работает нормально.Есть только некоторые дополнительные проблемы, связанные с последующими обновлениями.
Любая помощь очень ценится.