문제

I just don't know why this fails. I have the following which attempts to add tasks to 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)
));

It works just fine when I put the user ID in manually, like above commented code, however fails when I try to use the array. I get the following error:

Error while trying to connect to Asana, response code: 400

Any help is greatly appreciated.

도움이 되었습니까?

해결책

Without knowing exactly how the $asana lib is implemented (link?) my guess would be that the array is not encoded correctly. If sent via url-encoded post data (as opposed to JSON) the array should be comma-delimited. PHP may do something else like followers[]=1&followers[]=2 when it should be followers=1,2.

Try doing something like "followers" => implode(",", $arrayOfIds), or check the code of the library to see how it encodes arrays. Additionally, including the actual HTTP request/response would help figure out what's going in. There are many ways to get this - your library may include a verbose/debugging mode, but if all else fails you can always use something like Charles Proxy, Wireshark, Ettercap, etc.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top