Chatwork의 작업을 Asana에서 관리하고 싶었습니다.

Chatwork 불만



커뮤니케이션은 채팅 작업에 의존합니다 (무료 플랜이지만 ...)
그리고 채팅 워크에서 다른 채팅으로 전환할 수 없는 가장 중요한 (개인적으로) 기능
작업 관리 기능

보기 힘들고 미묘한(초실례) 작업 관리 기능이지만
그 포치 포치로 작업을 등록 할 수있는 것이 편리합니다.

그러나 채팅에서 발생하지 않은 작업은 Asana에서 관리합니다.
채팅에서 발생한 작업은 채팅 작업으로 작업
그리고 아사나에 전기
... 귀찮은

내 구구리 힘으로 좋은 협력 기능을 찾을 수 없었기 때문에
지금 소지의 환경 속에서 가장 바삭바삭하게 간편하게 만들 수 있는 GAS로 제휴해 보기로 했습니다.

전원 분들 제휴할까 생각했지만 귀찮아서 자신의 팀(2명이지만)만 제휴

하고 싶은 것 초개요





이전 준비



Chatwork의 API 토큰과
모니터링하려는 Chatwork의 룸 ID 및 계정 ID
아사나의 API 토큰과
작업 추가하려는 곳
workspaceID와 projectID는 사전에 취득 & 조사해 둡니다.

출처



chatwork 클라이언트 라이브러리를 사용하고 있습니다.
htps : // 기주 b. 코 m / cw - 시부야 / 짱 rk - c ぃ 엔 t

코드.gs
function myFunction() {
    var accounts = [
        {"mail": "ASNAMAIL1", "chatwork_token": "CHATWORKTOKEN2", "chatwork_aid": "CHATWORKAID1", "asana_token": "ASANATOKEN1"},
        {"mail": "ASANAMAIL2", "chatwork_token": "CHATWORKTOKEN2", "chatwork_aid": "CHATWORKAID2", "asana_token": "ASANATOKEN2"}
    ];
    var chatwork_target_room_id = 'TARGETROOMID';

    var asana_api = "https://app.asana.com/api/1.0/tasks";
    var asana_workspace = "WORKSPACEID";
    var asana_project = "PROJECTID";

    for(var i=0; i<accounts.length; i++){
        var account = accounts[i];

        var client = ChatWorkClient.factory({token: account["chatwork_token"]});
        var tasks = client.getRoomTasks(chatwork_target_room_id , {account_id: account["chatwork_aid"], status: 'open'});

        if(tasks!=false){
            for(var j=0; j<tasks.length; j++){
                var task = tasks[j];
                var chatbody = task.body.replace(/\[\/?.+\]/, "");

                //Asanaにタスク登録
                var headers = {
                    "Authorization": "Bearer " + account["asana_token"]
                };
                var email = account["mail"];
                var limit_time = new Date(task.limit_time * 1000);
                var due_on = Utilities.formatDate(limit_time,"JST","yyyy-MM-dd");
                var data = {
                    "data": {
                        "workspace": asana_workspace,
                        "projects": [asana_project],
                        "name": chatbody.slice(0, 100),
                        "notes": "https://www.chatwork.com/#!rid"+chatwork_target_room_id+"-"+task.message_id+"\n---\n"+chatbody,
                        "assignee": "me"
                    }
                }
                if(task.limit_time != 0){
                    data["data"]["due_on"] = due_on;
                }
                var json = JSON.stringify(data);
                var options = {
                    "method": "post",
                    "contentType": "application/json",
                    "headers": headers,
                    "payload": json,
                    "muteHttpExceptions": true
                }
                var response = UrlFetchApp.fetch(asana_api, options);
                var jobj = JSON.parse(response);

                //chatworkTaskを完了にする
                var targetUrl = 'https://api.chatwork.com/v2/rooms/'+chatwork_target_room_id+'/tasks/'+task.task_id+'/status';
                var res = UrlFetchApp.fetch(targetUrl,
                    {
                        headers: {'X-ChatWorkToken': account["chatwork_token"]},
                        method: 'put',
                        payload: {'body': "done" },
                        muteHttpExceptions : true,
                    }
                );
            }
        }
    }
}

이 녀석을 1분마다 실행하도록 설정합니다.

해보자



4월 30일까지 야키니쿠가 먹고 싶은 과제를 채팅워크에 등록


마음대로 완료합니다.
잡담 봇이 쓸데없이 반응하고 있지만, 더 이상의 대화는 성립되지 않으므로 무시합니다.


Asana 확인


상세를 보면 링크도 설정되어 있어 뭔가 좋은 느낌의 분위기


채팅 워크는 다른 유사한 채팅 서비스에 비해 누구나 빛나기 쉽고 빛에 사용할 수있는 훌륭한 서비스라고 매우 개인적으로 생각하고 있습니다.
하지만 작업 관리가 불만이었습니다.
그렇지만 조금 잊지 않도록 정도의 용도라면 편리, 그래서 모두 사용한다. 그렇지만 태스크가 늘어나면 가시화하기 어렵기 때문에 사용하기 어렵다.
이제 불만이 조금 해소되었기 때문에 채팅 작업에 계속 의존합니다.

좋은 웹페이지 즐겨찾기