API Обезьяны Обзора: / collectors / {id} / response / bulk? Start_created_at = Возвращает ошибку неверного запроса - PullRequest
0 голосов
/ 19 февраля 2020

Я использую python 3.6.4. Попытка получить данные из API Survey Monkey с помощью следующего:

access_token = 'xxx'
collector_id = 'yyy'

s = requests.session()
s.headers.update({
                  "Authorization": "Bearer %s" % access_token,
                  "Content-Type": "application/json"
                })
url = "https://api.surveymonkey.com/v3/collectors/%s/responses/bulk?start_created_at=2020- 
02-11T23:20:00+00:00" % (collector_id) 
res = s.get(url)
dat = res.json()

К сожалению, это приводит к следующей ошибке:

{'error': {'id': '1003',
'name': 'Bad Request',
'docs': 'https://developer.surveymonkey.com/api/v3/#error-codes',
'message': 'Invalid URL parameters.',
'http_status_code': 400}}

Я нашел сообщение, в котором рассматривается та же проблема, что и здесь, но решения, предоставленные там, не работали для меня. Вот пост: start_created_at не работает с / collectors / {id} / response

Может кто-нибудь указать мне правильное направление относительно того, как я могу отформатировать строку запроса, чтобы мой параметр URL Я хочу фильтровать по действительному?

1 Ответ

0 голосов
/ 20 февраля 2020

Вам нужно, чтобы URL кодировал только часть даты / времени в URL. Попробуйте это:

timedate = '2020-02-11T23:20:00+00:00'
timedate_enc = urllib.parse.quote(timedate)
url = 'https://api.surveymonkey.com/v3/collectors/%s/responses/bulk?start_created_at=%s' % (collector_id, timedate_enc)
...