参数类型与UrlFetchApp负载不匹配



当我尝试使用Google Apps脚本执行POST请求时,我收到错误:传递的参数类型不匹配:"字段"。

我尝试在有效负载上添加JSON.stringify(requestBody),但也没有成功。我哪里错了?

var fields = ["id","name","group_name"]
var requestBody = {
"project_id": "3259344",
"fields": fields,
"limit": "30"
} 
var options =
{
'method'  : 'POST',
'headers' : {
'User-Id' : email,
'Authorization' : 'Bearer '+ apiKey
}, 
'payload' : requestBody
};

var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

我不确定您要使用的API的详细规范。因此,从您问题中的错误消息来看,以下3种修改模式如何?

模式1:

修改的脚本:

var fields = ["id","name","group_name"];
var requestBody = {
"project_id": "3259344",
"fields": fields,
"limit": "30"
};
var options = {
'method'  : 'POST',
'headers' : {
'User-Id' : email,
'Authorization' : 'Bearer ' + apiKey
}, 
'payload' : JSON.stringify(requestBody),  // Modified
'contentType': 'application/json'  // Added
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

模式2:

修改的脚本:

var fields = "id,name,group_name";  // Modified
var requestBody = {
"project_id": "3259344",
"fields": fields,
"limit": "30"
};
var options = {
'method'  : 'POST',
'headers' : {
'User-Id' : email,
'Authorization' : 'Bearer ' + apiKey
}, 
'payload' : JSON.stringify(requestBody),  // Modified
'contentType': 'application/json'  // Added
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

模式3:

修改的脚本:

var fields = "id,name,group_name";  // Modified
var requestBody = {
"project_id": "3259344",
"fields": fields,
"limit": "30"
};
var options = {
'method'  : 'POST',
'headers' : {
'User-Id' : email,
'Authorization' : 'Bearer ' + apiKey
}, 
'payload' : requestBody
};
var response = UrlFetchApp.fetch("https://api.test.com/v2/json/get/keywords", options);

参考:

  • 类UrlFetchApp

最新更新