我只是不知道为什么会失败。我有以下尝试向Asana添加任务:
$arrayOfIds = array("0123456789", "9876543210");
$followers = implode('", "', $arrayOfIds);
$newtask = $asana->createTask(array(
"workspace" => $workspaceId,
"name" => $name,
"team" => $teamId,
"assignee" => $assignee,
"due_on" => $dueOn,
"completed" => $completed,
"completed_at" => $completedAt,
//"followers" => array("0123456789")
"followers" => array($followers)
));
当我手动输入用户ID时,它就可以正常工作,就像上面注释的代码一样,但是当我尝试使用数组时失败了。我收到以下错误:
尝试连接Asana时出错,响应代码:400
非常感谢任何帮助。
答案 0 :(得分:0)
如果不确切知道$asana
lib是如何实现的(链接?),我的猜测就是数组没有正确编码。如果通过url编码的post数据发送(而不是JSON),则数组应以逗号分隔。当followers[]=1&followers[]=2
为followers=1,2
时,PHP可能会执行"followers" => implode(",", $arrayOfIds)
之类的其他操作。
尝试执行{{1}}之类的操作,或检查库的代码以查看它如何编码数组。此外,包括实际的 HTTP请求/响应将有助于弄清楚发生了什么。有很多方法可以实现这一点 - 您的库可能包含详细/调试模式,但如果所有其他方法都失败,您可以随时使用Charles Proxy,Wireshark,Ettercap等等。