POST 正文请求为 x-www-form-urlencoded
POST Request in Body as x-www-form-urlencoded
我使用下面的代码 POST grant_type
, client_id
, client_secret
, refresh token
到 https://webexapis.com/v1/access_token
下面是 postman Javascript-fetch 控制台,当我在 POstman
中尝试时它是成功的
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 中尝试了同样的方法,并且成功了。我想在 Google Sheet 脚本中使用相同的内容
你把事情搞混了。这些参数 grant_type、client_id、client_secret 和 refresh_token 不是 HTTP-Headers,而是您发送到服务器的负载。
根据文档 (https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app),这应该有效:
var cisurl = "https://webexapis.com/v1/access_token";
var data = {
'grant_type': 'refresh_token',
'client_id': 'abcdefg',
'client_secret': 'hijklmn',
'refresh_token': 'opqrstuvw'
};
var options = {
'method': 'post',
'payload': data
}
var response = UrlFetchApp.fetch(cisurl,options);
P.S.: 不要在 stack-overflow
上分享你的秘密
我使用下面的代码 POST grant_type
, client_id
, client_secret
, refresh token
到 https://webexapis.com/v1/access_token
下面是 postman Javascript-fetch 控制台,当我在 POstman
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 中尝试了同样的方法,并且成功了。我想在 Google Sheet 脚本中使用相同的内容
你把事情搞混了。这些参数 grant_type、client_id、client_secret 和 refresh_token 不是 HTTP-Headers,而是您发送到服务器的负载。
根据文档 (https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app),这应该有效:
var cisurl = "https://webexapis.com/v1/access_token";
var data = {
'grant_type': 'refresh_token',
'client_id': 'abcdefg',
'client_secret': 'hijklmn',
'refresh_token': 'opqrstuvw'
};
var options = {
'method': 'post',
'payload': data
}
var response = UrlFetchApp.fetch(cisurl,options);
P.S.: 不要在 stack-overflow
上分享你的秘密