При попытке выполнить запрос GET с помощью Auth с использованием UrlFetchApp выполняется следующее:
Вот что у меня есть:
function getAllProducts() {
const key = "MY KEY";
const secret = "MY SECRET";
const options = {
"headers": {
"Authorization": "Basic " + Utilities.base64Encode(key + ":" + secret),
"Cache-Control": "no-cache", // This didn't seem to matter
"Pragma": "no-cache" // This didn't seem to matter either
}
};
const url = 'https://www.my-domain/wp-json/wc/v3/products?per_page=1&page=1'; // Seems to just be ignoring these?!?!?!?
Logger.log(url); // This logs the correct url with params
return callAPI(url, options);
}
function callAPI(url, options) {
const response = UrlFetchApp.fetch(url, options); // After first call I can just remove options and it'll work without Auth?!?!?
const jsonResponse = response.getContentText();
const data = JSON.parse(jsonResponse);
return data;
}
В итоге:
- Я получаю ответ, как будто я передал его без параметров запроса вообще.
- После однократного запуска я могу даже удалить
options
из .fetch(url, options)
,и до сих пор дает тот же ответ.Так что он явно что-то кеширует - но это не объясняет игнорирование параметров запроса. - Когда я пытаюсь сделать это с помощью эквивалентной команды curl, она работает точно так же, как и ожидалось.
- Я могу только воспроизвестиэта проблема «игнорирования параметров» для этого, поэтому я использую API WooCommerce, если это помогает, но это действительно не должно быть, учитывая, что команда curl работает.
Вот скручивание для ref:
curl https://www.my-domain.co.za/wp-json/wc/v3/products?per_page=1 -u <KEY>:<SECRET>
Мне бы очень хотелось помочь - действительно, потяну за волосы!