Я очень плохо знаком с API. Я успешно построил API в почтальоне и получил данные, которые хотел. Я сгенерировал пример кода, предоставленный почтальоном в формате JavaScript:
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic ZGVhbGdwwitpflgnBvcnQ6ZldZUmZvVEU5a2hNaFZtUlBlcU1VZ3J5eFRhWXBwN0U3d1hdllBZw==");
var urlencoded = new URLSearchParams();
urlencoded.append("grant_type", "password");
urlencoded.append("username", "123456789");
urlencoded.append("password", "password123!");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: urlencoded,
redirect: 'follow'
};
fetch("https://accounts.autoscout24.com/oidc/token", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Однако я хочу встроить этот API в google scripts , используя функцию UrlFetchApp. Пока я делаю это:
function webRelay(){
var url = 'https://accounts.autoscout24.com/oidc/token';
var username = "123456789";
var password = "password123!";
var headers =
{
"Content-Type" : "application/x-www-form-urlencoded" ,
"Authorization" : "Basic ZGVhbGdwwitpflgnBvcnQ6ZldZUmZvVEU5a2hNaFZtUlBlcU1VZ3J5eFRhWXBwN0U3d1hdllBZw=="
}
var options =
{
"grant_type" : "password",
"timeout": 0,
"method" : "post",
"headers": headers
};
// Getting "bad request" here - check the username & password
var result = UrlFetchApp.fetch(url, options);
var state=result.getContentText();
}
Но я получаю следующую ошибку:
Запрос не выполнен для https://accounts.autoscout24.com возвращенного кода 400. Сокращенный ответ сервера: { "error": "invalid_request"} (используйте опцию muteHttpExceptions для проверки полного ответа) (строка 22, файл "api")
Не могли бы вы помочь мне выяснить, что я делаю неправильно? Большое спасибо!