Я использую API YouTube и сохраняю данные ответов с помощью LocalStorage, затем получаю данные из LocalStorage и выполняю какие-то действия (создание карусели видео).
Конечная цель - избегать отправки запросов каждый раз в API и получить видео, так как один запрос имеет 100 затрат. Ежедневные квоты составляют 10000.
Поэтому я ищу способ сделать запрос один раз в день, затем сохранить ответ в массиве Shopify и затем построить карусель, используя этот массив.
Поэтому мой вопрос заключается в том, как сохранить ответ API в переменной Shopify с {% assign%}, если это возможно, или в базу данных?
Ниже приведен фрагмент кода
let APIKEY = ""
let channelId = ""
let retrievedData = localStorage.getItem("FVideos");
let newData = JSON.parse(retrievedData);
let itemsArr = [];
if(newData == null){
let request = $.ajax({
url: `https://www.googleapis.com/youtube/v3/search?key=${APIKEY}&channelId=${channelId}&part=id&order=date&maxResults=6&fields=items(id(videoId))`,
method: "GET",
dataType: "json"
});
request.done(function( data ) {
itemsArr.push(data.items);
for(let i=0; i < data.items.length; i++){
let videoId = itemsArr[0][i].id.videoId;
createHtmlBlock(videoId);
localStorage.setItem("FVideos", JSON.stringify(itemsArr));
}
})
request.complete(function(){
buildCarousel();
})
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
} else {
for( let d=0; d < newData[0].length; d++){
let videoId = newData[0][d].id.videoId;
createHtmlBlock(videoId);
}
buildCarousel();
}