Простите, я не использовал JavaScript в течение 10 лет, и я хочу включить любые детали, которые помогут мне лучше понять.
Я хочу получать данные из внешнего API с помощью Google Scripts в Google Sheets , Вместо того, чтобы извлекать все данные, я хочу выбрать только те данные, которые я определил в массиве.
Я пытаюсь присоединиться к базовому URL и добавить идентификатор для данных, которые я хочу специально.
У меня есть базовый URL и неопределенный конец URL:
const urlBase = 'https://website/item?q';
var urlEnd = '';
Я пытался использовать join(\'=\')
для каждого элемента массива.
Массив выглядит примерно так: (я хотел выводить его в разных разделах при извлечении данных)
const itemData0 = ['1da94960-5a14-4cb0-bc25-23a07ecbc915','7ecda500-745e-4275-8b4e-b883b0a28139']
const itemData1 = ['60769d56-6fe0-464f-9d6c-d2a1b6ca6e18','a53b9b6e-3671-43fe-9429-08224083bb11']
const priceData0 = ['0080307d-3596-440c-be38-bdded3cbf4cf','5ac84494-465a-424a-b36e-fe22869ba5ec']
...
URL должен в конечном итоге быть: https://website/item?q=1da94960-5a14-4cb0-bc25-23a07ecbc915
Что должно дать me,
Header: Items 0
Row0: Data1, Data1a (Each Url ID)
...
Header: Items 1
Row0: Data1, Data1a
...
Конечная точка API: (Добавление let i=o; i<array.length; i++
для каждого массива для замены URL) И сбор данных:
function getItemData() {
let urlData = [];
for (let i=0; i<urlEnd.length; i++) {
urlData[i] = [];
urlData[i][0] = urlEnd[i].itemData0;
urlData[i][1] = urlEnd[i].itemData1;
urlData[i][2] = urlEnd[i].priceData0;
urlEnd.forEach("join function")
}
let data = fetchJSON('https://website/item?q=' + urlData);
let range = ssPrivateData.getRange(`A${1 + HEADER_ROWS_COUNT}:E${1 + HEADER_ROWS_COUNT + data.length - 1}`);
let sheetData = [];
for (let i=0; i<data.length; i++) {
sheetData[i] = [];
sheetData[i][0] = data[i].id;
sheetData[i][1] = data[i].name;
sheetData[i][2] = data[i].price;
sheetData[i][3] = data[i].date;
sheetData[i][4] = data[i].lastSale;
}
range.setValues(sheetData);
setLastUpdateDate();
}
function fetchJSON(url) {
try {
var response = UrlFetchApp.fetch(url, { headers: { 'x-api-key': API_KEY }});
var json = response.getContentText();
var data = JSON.parse(json);
return data;
}
catch(err) {
status = err.message;
}
return status;
}
Я не могу получить URL-адреса для объединения для каждый из массивов. Я пытался запустить этот скрипт в автономном режиме, чтобы получить случайные данные для проверки форматирования, но я даже не могу получить данные для ввода.
ОБНОВЛЕНИЕ
Я взял все данные вместо указанных c идентификаторов. а затем отфильтровал данные, которые не были равны определенному массиву. Посмотрите на один из ответов, я объяснил, что я сделал по-другому.
Извините, вопрос не так легко понять. надеюсь, мой ответ ниже разъясняет, что я пытался сделать. Я до сих пор не знаю, как добавить URL-адрес и добавить к нему идентификатор. Я чувствую, что фильтрация лучше, так как мне не нужно каждый раз запрашивать каждый идентификатор. Я просто делаю это один раз и игнорирую идентификаторы, которые мне не нужны.