Asana API - 在任务创建期间添加 due_on

Asana API - Adding a due_on during task creation

我试图在使用 Asana API 创建任务期间添加一个 due_on 日期,但每次它都会发出服务器 500 错误和一条随机的、有点幽默的消息。这是尝试添加具有 due_on 或 due_at 值的任务时 api 响应的示例。

stdClass Object ( [errors] => Array ( [0] => stdClass Object ( [message] => Server Error [phrase] => 22 tough cobras kneel kindly ) ) )

这些日期功能有什么问题吗?也许我使用的 'YYYY-MM-DD' 格式(来自 api 文档)不正确?当我删除这个字段时,我在创建任务时没有任何问题,这让我相信问题仅出在 due_on 和 due_at 字段上。如果我完全删除第 6 行,它将 return 成功。

这是吐出错误的代码示例:

$post_data = array(
    'assignee' => $asana_user_id,
    'notes' => $task_notes,
    'followers[0]' => $asana_user_id,
    'name' => 'Test Task',
    'due_on' => '2015-09-03',
    'workspace' => $workspaceID,
    'projects' => $project_id
);

$curl = curl_init('https://app.asana.com/api/1.0/tasks');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer '.$asanaApiToken
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($curl); // execute post to asana
print_r($response);

感谢任何帮助,感谢高级

server errors occur on the Asana API 时,您收到的随机且幽默的错误消息是标准的。它应该是一个独特的字符串,允许我们追踪导致 500 的异常。

我查看了导致此问题的原因,我相信它与具体解析多部分表单字段中的日期有关。

如果您使用不同的 Content-Type 发送请求,application/jsonapplication/x-www-form-urlencoded 应该没问题。

这是一个使用 application/json 的例子:

$curl = curl_init('https://app.asana.com/api/1.0/tasks');

$data_string = json_encode(array(
        "data" => array(
            "workspace" => $workspace,
            "name" => $name,
            "assignee" => "me",
            "due_on" => "2015-09-03")
    )
);

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Authorization: Bearer '.$access_token,
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
);

$response = curl_exec($curl);

print_r($response);