1

我正在尝试更新子任务。更具体地说,只是截止日期。我尝试了几件事,但都失败了。这是我到目前为止所尝试的:

尝试 1: URL:https://app.asana.com/api/1.0/tasks/ JSON: {"data":{"due_on":"6/18/2017 12:00:00 AM"}} 错误:远程服务器返回错误:(400) 错误请求。

尝试 2:向 JSON 请求 URL 添加父 ID:/tasks/ JSON:ParentID 出于安全原因被屏蔽 {"data":{"due_on":"6/18/2017 12:00:00 AM","parent" :{"id":################,"name":null}}} 错误:远程服务器返回错误:(400)错误请求。

尝试 3:在 URL 中使用 /subtask URL:/tasks//subtasks/ JSON:{"data":{"due_on":"6/18/2017 12:00:00 AM"}} 错误:远程服务器返回一个未找到错误404

发送 JSON 请求的正确 URL 应该是什么?修改子任务截止日期的请求应该是什么?

任何帮助是极大的赞赏。谢谢薇薇

4

1 回答 1

1

维维克,

我注意到的第一件事是 URL 不包含您尝试更新的任务的 ID - 我不确定这是否是问题中的复制粘贴遗漏,但如果不是,那么您的 URL re using 没有任务的 ID,我们不知道您要为哪个任务设置截止日期 - 所以这可能是您看到的一件事 :)

此外,我想验证您是否PUT对这些请求使用了 HTTP 动词;您可以POST在 Asana 中创建新任务,但要更改现有任务的字段,我们需要PUT. 由于子任务算作 Asana 中的任务,因此可以仅针对https://app.asana.com/api/1.0/tasks/:task_id路由来完成

还有一件事:在 Asana 中设置截止日期或截止时间实际上是两件事 - 大多数任务都设置了截止日期,但在我们的 Web 应用程序中,您可以选择在设置截止日期时添加时间。这在我们的 API 中由due_on日期和due_at时间字段表示。如果您只想要截止日期(根据时间是上午 12:00 的事实推断),您可能需要due_on一个格式为 YYYY-MM-DD 的字符串(在本例中为 2017/06/18)。如果要设置实际时间,可以使用due_atISO8601 时间戳,例如 2017-06-18T08:00:00Z

总而言之,这是我在这里用“due_at”测试的一个 curl 请求,以保持时间方面:

curl --request PUT \
--header "Authorization: Bearer $ASANA_PERSONAL_ACCESS_TOKEN" \
"https://app.asana.com/api/1.0/tasks/$TASK_ID" -d '{
  "data": {
    "due_at": "2017-06-08T12:00:00Z"
  }
}'

最后,并且完全不相关:您是否恰好是目前为 Yelp 工作的 Vivek Patel?如果是这样,我曾经在 Sharpcast - 小世界和你一起工作!如果没有,不用担心,请随意忽略!

于 2017-02-03T22:25:15.727 回答