start_created_at не работает с /collectors/{id}/responses

Я использую этот скрипт приложения Google для запроса результатов Survey Monkey:

function surveyMonkey() {
  var token = "xxx";
  var survey = "xxx";
  var options = {"headers": {"authorization": "bearer "+token}};
  var api_key = "xxx";
  var url = 'https://api.surveymonkey.net/v3/';
  var responseURL = 'collectors/xxx/responses?api_key='+api_key
  +'&sort_by=date_modified&sort_order=DESC'
  +'&start_modified_at=2016-04-01T00:00:00+00:00'
  var responses = UrlFetchApp.fetch(url+responseURL, options);
  var responseData = JSON.parse(responses.getContentText());
  Logger.log(responseData);
}

Я пытаюсь вызвать сборщик ответов "/collectors/{id}/responses". Когда я исключаю строку запроса для start_modified_at, я получаю действительный ответ JSON. Когда я пытаюсь включить start_modified_at, я не получаю ответа.

Я также пробовал это только с «/surveys/{id}/responses», и я получаю те же результаты. Он работает без даты и не работает, когда дата включена. Я удалил свою информацию и заменил ее на xxx, чтобы поделиться кодом.

Цель состоит в том, чтобы вернуть вчерашние ответы и добавить их в электронную таблицу.

Это также происходит с любой строкой запроса, которая включает строку даты. Есть ли идеи, что я могу делать неправильно и как я могу это исправить?


person chipoglesby    schedule 05.04.2016    source источник


Ответы (1)


Итак, проблема в том, что + заменяется пробелом к ​​тому времени, когда он доходит до нашего конца. Таким образом, он не проходит проверку. Вам необходимо закодировать параметры URL перед их отправкой нам. Так что в этом случае "+" будет "%2B".

Очевидно, сценарий приложения Google похож на javascript, и вы можете решить его с помощью encodeURIComponent('start_modified_at=2016-04-01T00:00:00+00:00').

Нам определенно нужно поработать над тем, чтобы вы получали более качественные сообщения об ошибках для недопустимых параметров URL! Попробуйте это и дайте нам знать, если вы все еще сталкиваетесь с проблемами.

person General Kandalaft    schedule 05.04.2016
comment
URL-адрес, отправляемый с моей стороны в отладчике, выглядит следующим образом: :55+00:00" rel="nofollow noreferrer">ссылка - person chipoglesby; 05.04.2016
comment
И это полный ответ об ошибке, который я получаю, когда жестко кодирую весь URL-адрес: Ошибка запроса для api.surveymonkey.net/v3/surveys/xxx/responses/ вернул код 400. Усеченный ответ сервера: {ошибка: {docs: developer.surveymonkey.com/api/v3 /#error-codes, сообщение: Недопустимые параметры URL., id: 1003, имя: Bad Reque... (используйте параметр muteHttpExceptions для проверки полного ответа) (строка 19, файл SurveyMonkey) - person chipoglesby; 05.04.2016
comment
Да, в этом случае дата изменения должна быть start_modified_at=2016-04-01T12%3A56%3A55%2B00%3A00 - person General Kandalaft; 05.04.2016