参数类型与 UrlFetchApp 负载不匹配
Parameter Type Mismatch with UrlFetchApp Payload
我收到错误:传递的参数类型不匹配:'fields' 当我尝试使用 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);
模式二:
修改后的脚本:
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);
参考:
我收到错误:传递的参数类型不匹配:'fields' 当我尝试使用 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);
模式二:
修改后的脚本:
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);