当我试图使用Google脚本执行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);
发布于 2020-04-21 00:36:55
我不确定您想要使用的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);
参考资料:
https://stackoverflow.com/questions/61338865
复制相似问题