我正在尝试创建一个Zapier Zap,以通过Tsheets API从Tsheets提取数据并将数据推入Tsheets。我已经成功地设法使用Fetch方法从Tsheets中获取数据。我现在正在尝试发布数据,经过一天的谷歌搜索和搜索该网站后,我仍然没有提出解决方案,因此希望你们能够为我提供一些线索。
这是我的POST代码:
var payload = '{data:[{name:"aServiceItem1", customfield_id:"118530", short_code:"c1" }, {name:"aServiceItem2", customfield_id:"118530", short_code:"c1"}]}';
var endpoint = "https://rest.tsheets.com/api/v1/customfielditems";
fetch(endpoint, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <my_token>"
},
data: JSON.stringify(payload)
})
.then(function(response) {
return response.text();
})
.then(function(responsebody) {
var output = {
response: responsebody
};
callback(null, output);
})
.catch(function(error) {
callback(error);
});
在Zapier zap开发控制台中,测试“此步骤”,它可以正确编译并与Tsheets API通信,但是我得到的响应是
响应 { “错误”:{ “代码”:417, “消息”:“期望失败:数据字段丢失” } }
据我所知,根据Tsheets API文档here,仅有的必填项是“名称”和“ customfield_id”,而据我所知,我正在提供这些内容。从该文档中可以找到一个响应项_status_extra,它可以为我提供更多信息,但我在响应中看不到该值。我可以修改代码以提供该值吗?
谁能看到我的代码为何无法发布我的数据?
免责声明:POST代码不是我自己的,我是在此站点上找到的。
TIA。
答案 0 :(得分:0)
好的,这就是最后的记录。
var payload = { "data": [{"name": "From Zapier2", "customfield_id": "118530", "short_code": "FZ2"}]};
var endpoint = "https://rest.tsheets.com/api/v1/customfielditems";
fetch(endpoint, {
method: "POST",
headers: {"Content-Type": "application/json", "Authorization": "Bearer <MyToken>"},
body: JSON.stringify(payload)
})
.then(function(response) {
return response.text();
})
.then(function(responsebody) {
var output = {response: responsebody};
callback(null, output);
})
.catch(function(error) {
callback(null, error);
});