2017-03-05 10 views
0

新しいタスクや既存のタスクにタグを追加できないようです。私はドキュメントhereパーhttps://github.com/Asana/php-asanaAsana API:タスク/ addTagを使用したり、タグを使用してタスクを作成すると無効なリクエスト

でgithubのからAPIを使用してい

、私はオプションを設定し、タスクのエンドポイントへのAPIコールを解雇しました。それはで失敗します。

致命的なエラー

// 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); 

/mydir/asana/Asana/Errors/AsanaError.php:29にメッセージ '無効な要求' とのキャッチされない例外 'InvalidRequestError \アサナ\エラー'

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と名前を使用して)、それはまだエラーアウト:ここrequestプロシージャに送られるオブジェクトです。実際には、最初の "{"に構文エラーがスローされます。

次に、既存のタスクにtasks/taskid/addTagを試すと、同様のエラーが表示されます。以下に、このコードを示します。

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

addTagコマンドの第2の部分は、アレイを必要とし、マニュアルに従ってアレイキーとしてtagを使用します。 textdatatagsなどの他のキーを使用してみました。

答えて

0

を(私のREPRO、すなわち、私が得た)問題です....タグがありますワークスペースに割り当てられます。したがって、workspace-1/project-1/task-1からworkspace-2/project-1/task-1にコピーされたタグは、作業スペース-2にタグが最初に作成されていない限り動作しません。

タグが宛先ワークスペースに作成されると、コードは完璧に機能しました。

0

私はあなたの最初の例を再現してみました。それは完全に私のために働いていました。 (残念ながら、私たちのAPIはいくつかの場所で非対称です。最初の例に示されているように、IDの配列を送信する方法がありますが、戻ってくるのはレスポンスに{ID, name}のネストされたものです。)

私はあなたが何をしているのか分かりません - 実際のPHPコードの外にあると思われます。私は、タグのIDが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

問題が見つかりました....タグがワークスペースに割り当てられています。つまり、workspace-1/project-1/task-1から** workspace-2 **/project-1/task-1にコピーしていたタグは、最初にworkspace-2にタグを作成していない限り動作しませんでした。 – limeygent

関連する問題