如何使用 workfront api 将小时对象添加到任务?

How can I add an hour object to a task using the workfront api?

我想编写一个休息客户端,它将为特定的 workfront 任务增加时间。即添加更多这些:

The docs 对此不是很清楚。他们对任何 TBF 都不是很清楚,它只是一个对象列表,没有如何关联它们的示例。这就像尝试仅使用字典来学习西班牙语一样!

我已经尝试 POST 新的一小时:

POST https://company.attask-ondemand.com/attask/api/v7.0/hour?apiKey=<api key>

正文

{
    "objCode": "HOUR",
    "entryDate": "2018-01-18",
    "hours": 1,
    "status": "SUB",
    "taskID" : "<task id>"
}

但我从 workfront 得到的结果是:

{
    "data": {
        "objCode": "HOUR",
        "ID": null
    }
}

有趣的是,如果我搜索任务的时间:

GET https://company.attask-ondemand.com/attask/api/v7.0/hour/search?taskID=<task ID>&apiKey=<api key>

我回来了几个小时,但它们不包含任何 TaskIds:

{
    "data": [
        {
            "ID": "<id>",
            "objCode": "HOUR",
            "entryDate": "2018-01-16",
            "hours": 3,
            "status": "SUB"
        },
        {
            "ID": "<id>",
            "objCode": "HOUR",
            "entryDate": "2018-01-15",
            "hours": 1,
            "status": "SUB"
        },
        {
            "ID": "<id>",
            "objCode": "HOUR",
            "entryDate": "2018-01-18",
            "hours": 0.75,
            "status": "SUB"
        }
    ]
}

即使 the docs 声明此对象包含 taskId 字段?

有没有人有这方面的经验?如何向任务对象添加新的小时数?

你快到了。您只需要发送更多数据即可。我不确定最低要求的字段是什么,但我能够在给定日期为给定任务在给定用户下记录 1 小时,并将其显示在任务下就好了。

POST https://x.my.workfront.com/attask/api/v7.0/hour?taskID=<id of task>&ownerID=<user to log hours under>&hours=1.0&entryDate=2017-12-27&apiKey=<key>"

请注意,除了 TaskID,您还可以传递其他有效的 ID 类型,例如问题。