<?php require_once '../asana.php'; // See class comments and Asana API for full info $asana = new Asana(array('apiKey' => 'XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX')); // Your API Key, you can get it in Asana $taskId = 10924433056204.0; $resultJson = $asana->getTask($taskId); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->responseCode != '200' || is_null($resultJson)) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; return; } $task = json_decode($resultJson); echo "Task details:" . PHP_EOL; var_dump($task); $resultJson = $asana->getTaskStories($taskId); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->responseCode != '200' || is_null($resultJson)) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; return; } $stories = json_decode($resultJson); echo "Task stories(comments):" . PHP_EOL; var_dump($stories);
<div class="container"> <table width="98%" cellpadding="3" cellspacing="0" border="1" class="table" id="sorttable"> <thead> <tr> <th>Date /Time Posted</th> <th>Task Name</th> <th>Description</th> <th>Comments</th> </tr> </thead> <tbody> <?php foreach ($tasksJson->data as $task) { /*print_r($task); die();*/ $taskDetail = json_decode($asana->getTask($task->id)); if ($asana->responseCode != '200' || is_null($taskDetail)) { continue; } $taskStories = json_decode($asana->getTaskStories($task->id)); ?> <tr> <td><?php echo date("M, d Y", strtotime($taskDetail->data->created_at)); ?> </td> <td><?php echo $taskDetail->data->name; ?> </td> <td><?php
echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; exit; } $projects = json_decode($projectsJson); foreach ($projects->data as $project) { echo '<strong>[ ' . $project->name . ' (id ' . $project->id . ')' . ' ]</strong><br>' . PHP_EOL; //if ($project->id != 42) { // Quickly filter on a project // continue; //} // Get all tasks in the current project $tasks = $asana->getProjectTasks($project->id); $tasksJson = json_decode($tasks); if ($asana->responseCode != '200' || is_null($tasks)) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; continue; } $project->tasks = $tasksJson; foreach ($tasksJson->data as $task) { echo '+ ' . $task->name . ' (id ' . $task->id . ')' . ' ]<br>' . PHP_EOL; $taskdata = $asana->getTask($task->id); $taskdataJson = json_decode($taskdata); $task->details = $taskdataJson; //var_dump($taskdataJson); $stories = json_decode($asana->getTaskStories($task->id)); $task->stories = $stories; //var_dump($stories); } } //var_dump($projects); echo "All as JSON:\n"; echo json_encode($projects);
<?php require_once '../asana.php'; // See class comments and Asana API for full info $asana = new Asana(array('apiKey' => 'XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX')); // Your API Key, you can get it in Asana $taskId = 10924433056204.0; $asana->getTask($taskId); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->hasError()) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; return; } echo "Task details:" . PHP_EOL; var_dump($asana->getData()); $asana->getTaskStories($taskId); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->hasError()) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; return; } echo "Task stories(comments):" . PHP_EOL; var_dump($asana->getData());
function getAsanaTasks($startTasksDate = 'now') { global $humanTags; /** * Create a client using Asana API key */ $asana = new Asana(array( 'apiKey' => ASANA_API_KEY )); $returnData = []; $tasksCounter = 0; $projectsCounter = 0; // Get all workspaces $workspaces = $asana->getWorkspaces(); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->responseCode != '200' || is_null($workspaces)) { logStatusFailure('Error while trying to connect to Asana, response code: ' . $asana->responseCode); return; } $workspacesJson = json_decode($workspaces); foreach ($workspacesJson->data as $workspace) { // echo '<h3>*** ' . $workspace->name . ' (id ' . $workspace->id . ')' . ' ***</h3><br />' . PHP_EOL; // Get all projects in the current workspace (all non-archived projects) $projects = $asana->getProjectsInWorkspace($workspace->id, $archived = false); // As Asana API documentation says, when response is successful, we receive a 200 in response so... if ($asana->responseCode != '200' || is_null($projects)) { logStatusFailure('Error while trying to connect to Asana [get project, workspace ' . $workspace->name . '], response code: ' . $asana->responseCode); continue; } $projectsJson = json_decode($projects); foreach ($projectsJson->data as $project) { $rDataKey = getClientNameByProjectId($project->id); $returnData[$rDataKey][$project->id] = [ 'workspace' => $workspace, 'project' => $project, 'tasks' => [], ]; // Get all tasks in the current project $tasks = $asana->getTasksByFilter(['project' => $project->id, 'workspace' => $workspace->id], ['modified_since' => $startTasksDate/*, 'opt_fields' => 'tags, name'*/]); // var_dump($tasks);die; $tasksJson = json_decode($tasks); if ($asana->responseCode != '200' || is_null($tasks)) { logStatusFailure('Error while trying to connect to Asana [get tasks, project "' . $project->name . '"], response code: ' . $asana->responseCode); unset($returnData[$rDataKey][$project->id]); continue; } $tasks = array(); foreach ($tasksJson->data as $task) { $taskFullInfo = $asana->getTask($task->id); // var_dump($tasks);die; $taskJson = json_decode($taskFullInfo); if ($asana->responseCode != '200' || is_null($tasks)) { logStatusFailure('Error while trying to connect to Asana [get task Info. Project "' . $project->name . '". Task "' . $task->name . '"], response code: ' . $asana->responseCode); unset($returnData[getClientNameByProjectId($project->id)][$project->id]); continue; } $lastChar = substr(trim($taskJson->data->name), -1); if ($lastChar != ':') { $taskTags = []; if ($taskJson->data->tags) { foreach ($taskJson->data->tags as $taskTag) { $taskTags[] = strtr($taskTag->name, $humanTags); } } $tasks[] = array( 'txt_link' => 'https://app.asana.com/0/' . $project->id . '/' . $taskJson->data->id, 'link' => [ 'url' => 'https://app.asana.com/0/' . $project->id . '/' . $taskJson->data->id, 'title' => 'https://app.asana.com/0/' . $project->id . '/' . $taskJson->data->id ], 'task_type' => '', 'completed' => $taskJson->data->name, 'notes' => '', 'created_at' => $taskJson->data->created_at, 'modified_at' => $taskJson->data->modified_at, 'tags' => implode(", ", $taskTags), ); } // $tasks[] = '+ <a target="_blank" href="https://app.asana.com/0/'.$project->id.'/'.$task->id.'">' . $task->name . '</a> ' // /*.(($task->tags) ? " [".implode (", ", $task->tags)."] " : '')*/.'<br>' . PHP_EOL; } if ($tasks) { $returnData[$rDataKey][$project->id]['tasks'] = $tasks; $tasksCounter = $tasksCounter + count($tasks); $projectsCounter++; } else { unset($returnData[$rDataKey][$project->id]); } } // remove empty entities if ($returnData) { foreach ($returnData as $clientName => $clientData) { if (!$clientData) { unset($returnData[$clientName]); } else { foreach ($clientData as $projectId => $projectData) { if (!$projectData) { unset($returnData[$clientName][$projectId]); } } } } } } // var_dump($returnData);die; return [ 'data' => $returnData, 'tasksCounter' => $tasksCounter, 'projectsCounter' => $projectsCounter, ]; }
exit; } $projects = $asana->getData(); foreach ($projects as $project) { echo '<strong>[ ' . $project->name . ' (id ' . $project->id . ')' . ' ]</strong><br>' . PHP_EOL; //if ($project->id != 42) { // Quickly filter on a project // continue; //} // Get all tasks in the current project $asana->getProjectTasks($project->id); if ($asana->hasError()) { echo 'Error while trying to connect to Asana, response code: ' . $asana->responseCode; continue; } foreach ($asana->getData() as $task) { echo '+ ' . $task->name . ' (id ' . $task->id . ')' . ' ]<br>' . PHP_EOL; $asana->getTask($task->id); if (!$asana->hasError()) { $task->details = $asana->getData(); //var_dump($task->details); } $asana->getTaskStories($task->id); if (!$asana->hasError()) { $task->stories = $asana->getData(); //var_dump($task->stories); } } } //var_dump($projects); echo "All as JSON:\n"; echo json_encode($projects);