【发布时间】:2021-06-30 13:46:40
【问题描述】:
我使用以下代码将grant_type、client_id、client_secret、refresh token 发布到https://webexapis.com/v1/access_token
下面是我在 POstman 中尝试时成功的邮递员 Javascript-fetch 控制台
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
var urlencoded = new URLSearchParams();
urlencoded.append("grant_type", "refresh_token");
urlencoded.append("client_id", "xxxx");
urlencoded.append("client_secret", "yyyy");
urlencoded.append("refresh_token", "zzzz");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: urlencoded,
redirect: 'follow'
};
fetch("https://webexapis.com/v1/access_token", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
请帮助我在 Appscript 中获得结果。 所以我在 Google Sheets 脚本中尝试了以下代码,但它显示错误
function webexDev() {
var cisurl = "https://webexapis.com/v1/access_token";
var data = {
'grant_type': 'refresh_token',
'client_id': 'xxxx',
'client_secret': 'yyyy',
'refresh_token': 'zzzz'
};
var options = { 'method': 'post', 'payload': data, 'contentType': 'application/x-www-form-urlencoded'}
var response = UrlFetchApp.fetch(cisurl,options);
var cisjson=response.getContentText();
var cisdata=JSON.parse(cisjson)
Logger.log(cisjson)
}
【问题讨论】:
-
当您点击“发送”时,请查看 Postman 生成的实际请求,而不是(或同时)查看 Postman 中的用户界面。然后您将看到屏幕截图中的数据如何转换为有效请求。使用 that 作为您需要在脚本中构建的指南..
-
另外:
"x-www-form-urlencoder"似乎有一个错字(它以d而不是r结尾。它是内容类型的一部分(参见here)。它也是表单数据的 default 内容类型。请参阅 Postman 中的“标题”选项卡。
标签: javascript google-apps-script http-headers