Итак, у меня есть этот код JavaScript с API, который выбирает записи времени из 10 000-футовых систем управления проектами.
Я не могу понять, как заставить этот код сохранить ответ JSON в массиве и рассчитать общее количество для каждого пользователя.
Я также безуспешно пытался найти способ удалить конечные точки из URL, чтобы упростить изменение параметров.
function fetchSheet(accessToken) {
var headers = {
headers: {
Authorization: 'Bearer ' + accessToken
}
}
var response = UrlFetchApp.fetch('https://api.10000ft.com/api/v1/time_entries?from=2020-01-07&to=2020-01-08&auth=token=', headers);
Logger.log(response.getContentText());
}
Всего 2 ответа
Вы можете определить глобальную переменную, используя var
, или, если вам нужно сохранить ее в течение некоторого времени, вы можете сохранить эту информацию, используя ваш localStorage, например: localStorage.setItem("foobar", JSON.stringify(yourArray))
.
Когда дело доходит до сохранения этой информации в массиве, вы можете изменить ваш выбор на что-то вроде этого:
fetch(
'https://api.10000ft.com/api/v1/time_entries?from=2020-01-07&to=2020-01-08&auth=token=',
headers
).then( res => res.json()).then(data => {
yourArray = data
})
Таким образом, вы конвертируете ответ в JSON, чтобы сохранить его. Просто запомните, если вы хотите получить это обратно из localalstorage, используйте JSON.parse
, например так:
JSON.parse(localStorage.getItem("foobar"))
Я не могу понять, как заставить этот код сохранить ответ JSON в массиве и рассчитать общее количество для каждого пользователя.
Данные ответа, скорее всего, будут представлять собой строковое представление вашего массива (или, возможно, строку, вложенную в объект, в зависимости от того, как работает UrlFetchApp
). Вы можете преобразовать строку обратно в массив, используя JSON.parse()
Я также безуспешно пытался найти способ удалить конечные точки из URL, чтобы упростить изменение параметров.
let getUrl = (from, to) =>
`https://api.10000ft.com/api/v1/time_entries?from=${from}&to=${to}&auth=token=`;
или более общий
let getUrl = (endpoint, queryParams) =>
`${endpoint}?${Object.entries(queryParams).map(kv => kv.join('=')).join('&')}`;
console.log(getUrl('google.com', {q: 'my_query', date: 'today', results: 30}));