добавить подписчиков в задачу asana с помощью API

Я просто не знаю, почему это не удается. У меня есть следующее, которое пытается добавить задачи в 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)
));

Он отлично работает, когда я ввожу идентификатор пользователя вручную, как в приведенном выше коде, но терпит неудачу, когда я пытаюсь использовать массив. Я получаю следующую ошибку:

Ошибка при попытке подключения к Asana, код ответа: 400

Любая помощь приветствуется.


person WayneT    schedule 13.01.2014    source источник


Ответы (1)


Не зная точно, как реализована библиотека $asana (ссылка?), я предполагаю, что массив закодирован неправильно. При отправке с использованием данных публикации в кодировке URL (в отличие от JSON) массив должен быть разделен запятыми. PHP может делать что-то еще, например followers[]=1&followers[]=2, когда должно быть followers=1,2.

Попробуйте сделать что-то вроде "followers" => implode(",", $arrayOfIds) или проверьте код библиотеки, чтобы увидеть, как она кодирует массивы. Кроме того, включение фактического HTTP-запроса/ответа поможет выяснить, что происходит. Есть много способов получить это — ваша библиотека может включать подробный режим/режим отладки, но если ничего не помогает, вы всегда можете используйте что-то вроде Charles Proxy, Wireshark, Ettercap и т. д.

person agnoster    schedule 15.01.2014