【发布时间】:2022-02-15 18:36:53
【问题描述】:
我对 API 很陌生。我已经在 postman 中成功构建了一个 API 并获得了我想要的数据。我生成了 postman 提供的 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.kernel.com/oidc/token", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
但是,我想使用函数 UrlFetchApp 在 google 脚本 中构建此 API。到目前为止,我正在这样做:
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.kernel.com 的请求失败,返回代码 400。 截断的服务器响应:{"error":"invalid_request"}(使用 用于检查完整响应的 muteHttpExceptions 选项)(第 22 行,文件 "api")
【问题讨论】:
-
阅读文档中的文档和示例。你需要使用
payload(类似于纯js中的body)
标签: javascript api google-apps-script postman