【发布时间】:2019-01-27 06:33:26
【问题描述】:
我正在尝试创建一个 Zapier Zap,以通过 Tsheets API 从/向 Tsheets 拉取和推送数据。我已经成功地使用 Fetch 方法从 Tsheets 获取数据。我现在正在尝试发布数据,经过一天的谷歌搜索和搜索该网站后,我仍然没有想出解决方案,所以希望你们能给我一些线索。
这是我的邮政编码:
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。
【问题讨论】:
-
好的,所以错误状态 data field missing 并且在我的代码中我调用了我的数据 body 所以我现在将其更改为 数据,但我仍然得到相同的响应。
-
正文中的数据标签不是问题。根据 Tsheets 支持的反馈,我更改了有效负载变量,但问题仍然存在。我现在认为这可能与我发布数据的方式有关——也许 JSON.stringify 不是发布数据的正确方法。这就是我今天要追求的路线。