我正在尝试使用Asana API在任务创建期间添加due_on日期,并且每次它都会发出服务器500错误和随机,有点幽默的消息。以下是尝试添加时api响应的示例具有due_on或due_at值的任务。
stdClass对象([errors] =>数组([0] => stdClass对象( [message] =>服务器错误[短语] => 22个坚韧的眼镜蛇跪下亲切)) )
这些日期功能有什么问题吗?也许' YYYY-MM-DD'格式我使用(来自api文档)是不正确的?当我删除这个字段时,我没有创建任务的问题,这让我相信问题只在于due_on和due_at字段。如果我完全删除第6行,它将返回成功。
以下是吐出错误的代码示例:
$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);
感谢任何帮助,谢谢先进
答案 0 :(得分:1)
server errors occur on the Asana API时,您获得的随机和类型的幽默错误消息是标准的。它是一个唯一的字符串,允许我们追踪导致500的异常。
我看了一下导致这种情况的原因,我认为这与从多部分表单字段中解析日期有关。
如果您使用其他Content-Type
application/json
或application/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);