Google Script - не может поместить более 100 элементов в массив - PullRequest
0 голосов
/ 26 сентября 2018


У меня сейчас проблема с Google Script.Я пытаюсь сделать HTTP-запрос GET от нашей системы заявок, которая доставляет все открытые заявки.
На самом деле это работает без проблем, но проблема в том, что я никогда не получаю ответ с более чем 100 элементами обратно (даже если существует около 150 открытых заявок), поэтому массив не может содержать более 100 элементов.Есть ли причина для этого?Кто-нибудь знает решение?

Фрагмент кода:

  function setOpenTickets() {
  const subdomain = getSubdomain();
  const username = getUsername();
  const token = getToken();

  const searchUrlOpen = "https://" + subdomain + ".zendesk.com/api/v2/search.json?" +
    "query=type:ticket status:open order_by:created sort:asc";

  const authToken = username + "/token:" + token;
  const encodedAuthToken = Utilities.base64Encode(authToken);
  const options = {
    "method" : "get",
    "headers" : {
      "Content-type":"application/xml",
      "Authorization":  "Basic " + encodedAuthToken
    }
  };

  const jsonResponseOpen = fetchJson(searchUrlOpen, options);
  const openTickets = jsonResponseOpen.results.length;

  Logger.log("Open Tickets: " + openTickets);
  getConfigurationSheet().getRange("B16").setValue(openTickets);
}

1 Ответ

0 голосов
/ 26 сентября 2018

Документация Zendesk API гласит: API поиска возвращает ограничение в 2000 страниц с 100 results per page

Пожалуйста, запросите через все страницы, чтобы получить все данные.

Примерно так :(пожалуйста, проверьте статус ответа и прервите цикл, если возвращается 422 или пустая страница)

var page = 1;
response = fetchJson(searchUrlOpen+"&page="+page++, options);
while (response.status_code != 422) {
    processResponse(response);
    response = fetchJson(searchUrlOpen+"&page="+page++, options);
}

Ссылка: https://developer.zendesk.com/rest_api/docs/core/search#results-limit

...