javascript - 参数类型与 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种修改模式怎么样?
模式一:
修改后的脚本:
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);
参考:
推荐阅读
- xcode - 在 Xcode 下使用 Crypto++ ECDSA 签署消息时应用程序崩溃?
- python - 使用 UPDATE ... RETURNING 的多个数据库连接,似乎没有更新任务表中的行
- html - 如何使用检查元素工具更改所有显示状态?
- azure - 日志分析中未收集一些 Azure 虚拟机自定义性能计数器
- javascript - Chrome 扩展在所有页面中启用聊天机器人
- rest - 验证现代 Web 应用程序的最常用方法是什么?
- node.js - 如何将 Typescript 与 Node.js 连接起来
- java - 如何在 intellij 的现有项目中添加 vaadin 而不是 thymeleaf?
- testing - 如何确保对象数组中的所有项目都具有摩卡中所有必需的键?
- opencv - cv2.stereoRectifyUncalibrated : 错误: (-215:Assertion failed) src.size == dst.size && src.channels() == dst.channels() in function 'cvConvertScale'