API календаря Google - создать событие 400, ошибка разбора - PullRequest
0 голосов
/ 08 октября 2019

Использование python 3.6, запросы == 2.22.0

Попытка создать событие: ссылка на документацию

url = 'https://www.googleapis.com/calendar/v3/calendars/{}/events'.format(calendar_id)
data = {
      "summary": "CALENDAR TESTING",
      "location": "Some fake location",
      "description": "This is a test",
      "start": {
        "dateTime": "2019-10-09T09:00:00-07:00",
        "timeZone": "America/Los_Angeles",
      },
      "end": {
        "dateTime": "2019-10-09T10:00:00-07:00",
        "timeZone": "America/Los_Angeles",
      },
}
headers = {
        'Authorization': 'Bearer {}'.format(self.access_token.get('token')),
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    }
response = requests.post(url, data=data, headers=headers)

print("Response: ", response)
j = response.json()
print("json: ", j)

Вывод:

Response:  <Response [400]>
Raw Response:  {'error': {'errors': [{'domain': 'global', 'reason': 'parseError', 'message': 'Parse Error'}], 'code': 400, 'message': 'Parse Error'}}

тело запроса:

    summary=CALENDAR+TESTING&location=Some+fake+location&description=This+is+a+test&start=dateTime&start=timeZone&end=dateTime&end=timeZone

заголовки запроса:

    {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Authorization': 'Bearer ******', 'Content-Type': 'application/json', 'Content-Length': '135'}

Стек сообщений, которые не устранили проблему:
сообщение стека - повторно нетустановка типа контента, который я
стека пост - повторяю апострофы против двойных кавычек, я переключился на двойные кавычки по-прежнему ошибка

Я заметил, что часовой поясинформация отсутствует в теле запроса, но я не уверен, почему, и если это проблема.

Я смотрю на это сообщение прямо сейчас

1 Ответ

0 голосов
/ 09 октября 2019

Простое решение для устранения проблемы:

import json
response = requests.post(url, data=json.dumps(data), headers=headers)
...