将任务从 ChatWork 复制到 Backlog
大家好,我是 Web 系统开发部的 Goto。
我们公司使用ChatWork,即使在ChatWork上分配任务,
如果任务数量很多,也可能会迷失方向,或者很难理解优先级、截止日期等。
另一方面,Backlog 允许您使用甘特图管理任务,从而轻松了解截止日期、重要性级别等。
因此,我编写了
一个将任务从 ChatWork 移动到 Backlog 的流程所以我希望它对那些尝试使用 ChatWork API 或 Backlog API 的人有所帮助。
我将介绍每个功能。
1. 从ChatWork获取任务
从 ChatWork 检索任务需要四条信息。
- 分配任务的人员的帐户 ID
- 分配任务的人员的帐户 ID
- 分配任务的聊天室ID
- 选择已完成或未完成的任务
这些信息中的每一个都可以从下面获得。
- 收件人后的数字:分配给该任务的人员
- To后的数字:发送给分配任务的人
- https://www.chatwork.com/#!rid 这里的数字(rid 不是必填)
- 已完成 已完成 : 未完成 打开
通过将这些作为 GET 参数附加到 URL 并发出请求,任务信息将以 json 格式返回。
function get_tasks_from_cw($account_id, $signed_by_account_id, $room_id){ $params = array( 'account_id' = $account_id, //分配任务的人的 ID 'assigned_by_account_id' = $signed_by_account_id, //分配任务的人的 ID ID 'status' = 'open', //未完成的任务 ); $url = 'https://api.chatwork.com/v1/rooms/'.$room_id.'/tasks?'.http_build_query($params ); $headers = array( 'http' => array( 'method' = 'GET', 'header' = implode("rn", $headers), ) ); $json_cw_tasks = file_get_contents($url, false, stream_context_create ($上下文));返回 json_decode($json_cw_tasks);
2. 将问题注册到 Backlog
注册 Backlog 需要以下项目。
- 注册项目ID
- 问题类型 ID
- 优先事项
- 作业主题
如下所示设置这些。
-
- 注册项目的ID是根据项目的“项目设置”页面的URL确定的。
https://byd.backlog.jp/EditProject.action?project.id=此处的编号
-
- 有关作业类型,请参阅 2-a。
- 优先级 2 为高,3 为中,4 为低
- 随意选择主题
function add_task_to_backlog($task, $project_id, $backlog_api_key){ $issue_type_id = get_issue_type_id_of_tasks($project_id); //获取任务的issueTypeId mb_regex_encoding('UTF-8'); $params = array( 'projectId' = $project_id, 'issueTypeId' = $issue_type_id, 'priorityId' = 3, //优先级 'summary' = 'Task from ChatWork', 'description' = $task['body'], //要注册的问题内容(CW任务文本 (body)) ); = array('Content-Type:application/x-www-form-urlencoded'); $context= array( 'http' => array( 'method' = 'POST', 'header' = $header , 'ignore_errors' = true, ) ); file_get_contents($url, false, stream_context_create($context));
2-a. 获取问题类型“任务”的issueTypeId
问题的类型取决于项目,因此请从 API 获取该项目的 issuesTypeId。
这次,我们将获得类型为“task”的issueTypeid。
*这里不需要使用curl。我刚刚尝试过。
函数 get_issue_type_id_of_tasks($project_id, $backlog_api_key){ $param = array('apiKey' = $backlog_api_key); $url = 'https://space_name.backlog.jp/api/v2/projects/'.$project_id.'/ '.http_build_query($param); $ch = curl_init(); $options = array( CURLOPT_URL = $url, CURLOPT_HTTPGET = true, CURLOPT_HTTPHEADER = array( 'HTTP/1.0', '内容类型: application/x- www-form-urlencoded', ), CURLOPT_RETURNTRANSFER = true, ); $issue_type_json = curl_exec($ch); $issue_types = json_decode($issue_type_json); “任务”。 foreach ($issue_types as $issue_type) { if ($issue_type->name == 'task'){ $issu_type = $issue_type->id; } } return $issu_type;
大致是这样的。
对于ChatWork任务,到期日期可以从limit_time元素中获取为时间戳,因此
我认为在注册backlog时将其转换并放入 dueDate 参数并注册会很方便,这样您就可以复制到期日期以及。
请尝试扩展它。
如果您觉得这篇文章有帮助,请点赞!