Ошибка Google calendar API 400

Я пытаюсь выполнить простой запрос freebusy в API Календаря Google. У меня есть авторизация, все работает нормально, можно видеть списки календарей пользователей и т. д. Когда я пытаюсь отправить запрос Free / busy, я получаю ошибку 400 С (насколько я могу судить) не подробностями о том, что ему не нравится.

Это верно как в моем собственном коде, так и при использовании функции Google Calendar API "попробуйте".

вот мой запрос (созданный с помощью виджета Try It) и ответ: Запрос

POST https://www.googleapis.com/calendar/v3/freeBusy?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZTr-2wksEvp0iGPTnHTirTIItib5WwxmSAySq1ghfI98Cz88kA
X-JavaScript-User-Agent:  Google APIs Explorer

{
     "items": [
          {
              "id": "[my calendar id goes here]@group.calendar.google.com"
          }
     ],
     "timeMin": "2012-01-31T09:00:00",
     "timeMax": "2012-01-31T10:00:00",
     "timeZone": "GMT"
}

Response


400 Bad Request

cache-control:  private, max-age=0
content-encoding:  gzip
content-length:  122
content-type:  application/json; charset=UTF-8
date:  Sun, 16 Jun 2013 13:08:32 GMT
expires:  Sun, 16 Jun 2013 13:08:32 GMT
server:  GSE

{
     "error": {
     "errors": [
          {
              "domain": "global",
              "reason": "badRequest",
              "message": "Bad Request"
           }
     ],
    "code": 400,
    "message": "Bad Request"
     }
}

Я думаю, что это может иметь какое-то отношение к объектам dateTime/форматированию? Но я понятия не имею, что. Я был бы очень признателен за помощь; я бил головой об это в течение недели!

2 ответов


хорошо, я понял это, и я оставляю ответ для всех, кто теряет рассудок из-за этого.

несмотря на то, что документация Google говорит о формате для datetime в этом случае, единственный формат, который я мог получить, был следующим:

2008-03-07T17: 06: 02.000 Z

Так вот ГГГГ-ММ-ДДТЧЧ:ММ:СС.МММЗ

для чего Z? Я не знаю, но он должен быть там.


значение даты и времени должно быть в формате UTC "TZ". Почти все CRMs и public API принимают время в этом формате. Если вы преобразуете datetime в UTC время, используя основные функции/методы библиотеки языка (например, C или Java), они вернут экземпляр datetime в YYYY-MM-DDTHH:MM:SS.Формат MMMZ.