2017-03-05 29 views
0

我似乎无法将标签添加到新的或现有的任务。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作为数组键。我尝试了其他键,如textdatatags无济于事。

回答

0

这里是问题....标签分配给工作区。因此,从工作区-1 /项目-1 /任务-1复制到workspace-2/project-1/task-1的标签将无法工作,除非标签最初是在工作区-2中创建的。

在目标工作区中创建标签后,代码完美无缺地工作。

0

我看了一遍再现你的第一个例子,它完全为我工作。 (不幸的是,我们的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" 
    } 
    } 
} 
+0

我发现问题....标签被分配给工作区。因此,我从workspace-1/project-1/task-1复制到** workspace-2 **/project-1/task-1的标签将无法工作,除非我首先在workspace-2中创建标签。 – limeygent