API Asana: неверный запрос при использовании task / addTag или создании задачи с тегами

Я не могу добавить теги к новым или существующим задачам.

Я использую API от GitHub в https://github.com/Asana/php-asana

В соответствии с документами Вот, Я установил параметры и запустил вызов API для конечной точки задачи. Это терпит неудачу с:

Фатальная ошибка: Необработанное исключение «Asana \ Errors \ InvalidRequestError» с сообщением «Неверный запрос» в /mydir/asana/Asana/Errors/AsanaError.php:29

    // create new task
$newTaskOptions = array(
'name' => $taskName,
'notes' => $taskNotes,
'projects' => [11111111115445],
'tags' => [11111119991, 11111119992]   // without this, the task is created ok
);

$newTask = $client->tasks->create($newTaskOptions);

Вот объект, который отправляется на request процедура:

array(2) {
["headers"]=> array(1) {
["content-type"] => string(16) "application/json"}
["data"]=> array(2) {
["data"]=> array(4) {
["name"]=> string(17) "module 1 - task 1"["notes"]=> string(32) "description of module 1 - task 1"["projects"]=> array(1) {
[0]=> int(11111111115445)
}
["tags"]=> array(2) {
[0]=> int(11111119991)
[1]=> int(11111119992)
}
}
["options"]=> array(0) {
}
}
}

Даже с их примером [ { id: 59746, name: 'Grade A' }, ... ] (используя правильные идентификаторы и имена тегов), он все еще выдает ошибки. На самом деле, он выдает синтаксическую ошибку в первом «{».

Далее, если я попробую tasks/taskid/addTag к существующей задаче я получаю похожую ошибку. Вот этот кусок кода ниже.

foreach ($tags as $tag){
$newTag = $client->tasks->addTag($newTask->id, array('tag' => $tag));
}

Вторая часть addTag команда требует массив, и в соответствии с документацией использует tag в качестве ключа массива. Я пробовал другие ключи, такие как text или же data или же tags но безрезультатно.

0

Решение

Я посмотрел на воспроизведение вашего первого примера, и он полностью сработал для меня. (К сожалению, наш API в некоторых местах асимметричен, вот одно из них: отправка массива идентификаторов — это путь, как показано в вашем первом примере, но вы получите те, которые вложены {ID, name} пары в ответе.)

Я не уверен, с чем вы можете столкнуться — я подозреваю, что это, вероятно, что-то вне реального кода PHP, который вы используете. Мне удалось получить неверный запрос на ошибку, если идентификаторы тегов не существуют в Asana, может ли это быть проблемой?

Чтобы устранить ошибки, мы отправляем обратно, как мы надеемся, довольно дружелюбное сообщение в ответе. Если вы измените код запроса выше на

try {
$newTask = $client->tasks->create($newTaskOptions);
} catch (Asana\Errors\InvalidRequestError $e) {
var_dump($e->response->body);
}

надеюсь, это поможет вам увидеть, что происходит (то есть в моем репро я получил)

object(stdClass)#24 (1) {
["errors"]=>
array(1) {
[0]=>
object(stdClass)#25 (2) {
["message"]=>
string(40) "tags: [1]: Unknown object: 1980346754317"["help"]=>
string(155) "For more information on API status codes and how to handle them, read the docs on errors: https://asana.com/developers/documentation/getting-started/errors"}
}
}
0

Другие решения

Вот проблема …. теги присваиваются рабочей области. Таким образом, теги копируются из рабочей области-1 / проекта-1 / задачи-1 в рабочее пространство-2/ project-1 / task-1 не будет работать, если только метка не была впервые создана в рабочей области-2.

Как только тег был создан в рабочей области назначения, код работал без нареканий.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector