如何通过ActiveCollab API获取任务依赖ID?
问题:通过ActiveCollab API获取任务依赖ID
我正在做集成开发,目前通过路径projects/<project_id>/tasks/<task_id>能获取任务的大部分信息,代码示例如下:
require __DIR__ . '/vendor/autoload.php'; $authenticator= new \ActiveCollab\SDK\Authenticator\Cloud( 'MyCompany', 'MyApp', '**username**', '**password**' ); $token= $authenticator->issueToken(183704); if ($token instanceof \ActiveCollab\SDK\TokenInterface) { $ac_obj= new \ActiveCollab\SDK\Client($token); } $projectId= 123; $taskId= 45678; $objURL_tasks= "projects/".$projectId."/tasks/".$taskId; $tasks_json_response= $ac_obj->get($objURL_tasks)->getJson(); print_r($tasks_json_response);
但返回的任务依赖信息只有计数,没有具体ID:
[open_dependencies] => Array ( [parents_count] => 0 [children_count] => 0 )
我在官方API文档里没找到依赖相关的路径,试过projects/<project_id>/tasks/<task_id>/dependencies、projects/<project_id>/tasks/<task_id>/open_dependencies等路径都无效,请问有没有办法通过API获取任务依赖ID?
解决方案
ActiveCollab公开API文档未明确标注依赖ID的获取端点,但可以通过以下几种方式尝试:
添加
include参数获取任务详情
在请求单个任务时,追加include=dependencies参数,强制返回依赖的具体ID信息:$objURL_tasks = "projects/{$projectId}/tasks/{$taskId}?include=dependencies"; $tasks_json_response = $ac_obj->get($objURL_tasks)->getJson();成功请求后,返回结果中会新增包含父/子任务ID的依赖字段。
直接请求任务依赖的独立端点
尝试跳过项目路径,直接调用任务级的依赖端点:$dependencies_url = "tasks/{$taskId}/dependencies"; $dependencies_response = $ac_obj->get($dependencies_url)->getJson();部分版本的ActiveCollab支持此跨项目的任务关联请求,返回结果会包含所有关联的依赖任务ID。
批量遍历项目任务构建依赖关系
如果以上方法都无效,可以请求整个项目的任务列表(路径projects/<project_id>/tasks),遍历所有任务后,通过每个任务的parent_id字段手动构建依赖关系——parent_id即为当前任务的父依赖任务ID。
内容的提问来源于stack exchange,提问作者Franco Villan
相关产品推荐
相关产品推荐

