Asana API:使用任务/ addTag或使用标签创建任务时出现无效请求
我似乎无法将标签添加到新的或现有的任务。Asana API:使用任务/ addTag或使用标签创建任务时出现无效请求
我使用的是从GitHub的API在https://github.com/Asana/php-asana
%的文档here,我设置的选项,并发射了API调用任务的端点。它失败:
致命错误:在/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);
未捕获的异常 '体位\错误\ InvalidRequestError' 有消息 '无效请求'这里是发送到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' }, ... ]
例子(使用正确的标签ID和姓名),但仍然出现了错误。实际上,它会在第一个“{”处引发语法错误。
接下来,如果我尝试tasks/taskid/addTag
到现有任务,我收到类似的错误。下面是这段代码。
foreach ($tags as $tag){
$newTag = $client->tasks->addTag($newTask->id, array('tag' => $tag));
}
的addTag
命令的第二部分需要数组,并根据该文档使用tag
作为数组键。我尝试了其他键,如text
或data
或tags
无济于事。
这里是问题....标签分配给工作区。因此,从工作区-1 /项目-1 /任务-1复制到workspace-2/project-1/task-1的标签将无法工作,除非标签最初是在工作区-2中创建的。
在目标工作区中创建标签后,代码完美无缺地工作。
我看了一遍再现你的第一个例子,它完全为我工作。 (不幸的是,我们的API在一些地方是不对称的,下面是其中一个:发送ID数组是最好的例子,但是你会得到的是在响应中嵌套的{ID, name}
对)
我不确定你可能会遇到什么 - 我怀疑它可能是你正在使用的实际PHP代码之外的东西。如果Asana中不存在标签的ID,我能够得到无效的请求错误,这是否会成为问题?
为了排除错误,我们发回了我们希望的回复中相当友好的消息。如果更改上面
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"
}
}
}
我发现问题....标签被分配给工作区。因此,我从workspace-1/project-1/task-1复制到** workspace-2 **/project-1/task-1的标签将无法工作,除非我首先在workspace-2中创建标签。 – limeygent