将POST提取到Tsheets API会返回“代码”:417,“消息”:“期望失败:缺少数据字段”

时间:2018-08-21 05:57:03

标签: json api fetch-api zapier

我正在尝试创建一个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。

1 个答案:

答案 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);
    });