Я написал следующий скрипт для работы калькулятора:
function logInCDEK() {
var url = "https://api.edu.cdek.ru/v2/oauth/token"
let options = {
method: "POST",
muteHttpExceptions: true,
headers: {
"Content-type": "application/json",
"Accept": "application/json"
}
};
let queryParams = {
grant_type : "client_credentials",
client_id : "EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI",
client_secret : "PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG",
};
url+=Object.keys(queryParams).length?`?${getQueryString(queryParams)}`:"";
let response = UrlFetchApp.fetch(url, options);
return JSON.parse(response.getContentText());
}
/**
* Преобразует object в query-строку для подстановки в url
*
* @author Boew Grigory (ff.nspu@gmail.com)
* @param {Object} data Объект для преобразования
* @return Возвращает query строку
*/
function getQueryString(payload) {
let payloadData = Object.entries(payload);
return encodeURI(
payloadData
.filter(o=>o[1]!==undefined)
.map(v=>`${v[0]}=${v[1]}`)
.join("&")
);
};
function getCDEK(pointA, pointB, userId) {
var token = logInCDEK().access_token;
var url = "https://api.edu.cdek.ru/v2/calculator/tarifflist";
var options = {
method: "POST",
muteHttpExceptions: true,
headers: {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer " + token,
},
"type": 1,
"currency": 1,
"lang": "rus",
"from_location": {
"code": 270
},
"to_location": {
"code": 44
},
"packages": [
{
"height": 10,
"length": 10,
"weight": 4000,
"width": 10
}
]
}
var response = UrlFetchApp.fetch(url, options);
Logger.log(response)
return response;
}
Буду благодарен, если кто-то поможет мне