【GAS】스플릿 시트의 내용을 Chatwork에 복수의 태스크로서 추가한다

※투고 내용은 개인의 학습 목적의 기사이며, 소속 조직과는 일절 관계 없습니다.
Chatwork 공식 문서가 아니므로 자기 책임으로 이용하십시오.

안녕하세요, 사카구치 ( @ 사카구치_ 마미이 )입니다.

Chatwork에는 TODO를 관리하는 "작업"기능이 있습니다.

작업의 기본 사용법 – 지원 | Chatwork

작업을 함께 추가하려는 장면이 있지만 표준 기능으로 준비되지 않았습니다.
그래서 이번에는 GAS를 이용하여 스플릿 시트의 내용을 정리해 태스크 등록하려고 합니다.

API 토큰 얻기



오른쪽 상단 메뉴에서 API 설정을 선택합니다.


비밀번호를 입력하고 API 토큰을 얻습니다.


룸 ID 얻기



태스크를 등록하는 그룹 채팅의 룸 ID를 얻는다.

그룹 채팅 URL 끝의 숫자가 룸 ID입니다.

작업 담당자의 계정 ID 얻기



작업을 담당하는 담당자의 계정 ID를 가져옵니다.


To 뒤의 숫자가 계정 ID입니다.

라이브러리 로드



Chatwork에 작업을 등록하는 부분은 'Chatwork Client for Google Apps Script'를 이용합니다.
htps : // 기주 b. 코 m / cw - 시부야 / 짱 rk - c ぃ 엔 t

프로젝트 키: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT



스플릿 시트 준비



작업 등록을 위한 시트(시트 이름: 작업)
※스크립트내에서 시트명과 정보가 기재되어 있는 셀의 장소를 지정해 정보를 취득합니다.


계정 ID 등, 고정의 정보를 기재하는 시트(시트명:기본 정보)
※스크립트내에서 시트명과 정보가 기재되어 있는 셀의 장소를 지정해 정보를 취득합니다.

※스크립트내에서 시트명을 지정해, 정보를 취득합니다.

스크립팅


const token = 'APIトークン';

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 基本情報を取得
  const basic_info = ss.getSheetByName('基本情報');
  var room_id = basic_info.getRange(2, 1).getValue();
  var account_id = basic_info.getRange(2, 2).getValue();

  // タスク情報を取得
  const task_list = ss.getSheetByName('タスク');
  const lastRow = task_list.getLastRow();

  // 記載がある分だけ繰り返し
  for(let i = 2; i <= lastRow; i++) {

    // 内容
    var body = task_list.getRange(i, 1).getValue(); 
    // 期日
    var limit = new Date(task_list.getRange(i, 2).getValue());
    limit = (new Number(limit.getTime() / 1000)).toFixed();
    // タスク追加
    var param = {
      limit: limit,
      body: body,
      room_id: room_id,
      account_id: account_id
    }
    addTask(param);

  }
}

// タスク追加処理
function addTask(param) {

  var client = ChatWorkClient.factory({token: token});
  client.sendTask({
    limit: param.limit,
    to_id_list:[param.account_id],
    body: param.body,
    room_id: param.room_id
  });

}

테스트



스크립트 실행!

스플릿 시트에 기재된 작업이 등록되었습니다!

마지막으로



무사히 작업을 등록할 수 있었습니다. (좋았다)

오랜만에 코드를 써서 공개하고 있으므로, 잘못된 장소나 알기 어려운 점이 있으면 지적해 주세요!

앞으로하고 싶은 것!
  • 지정된 키워드를 그룹 채팅에 게시하면 자동으로 작업이 등록되는 방식
    (전제 조건 : 해당 그룹 채팅에 태스크 등록 BOT가 존재하고 있음)
  • 좋은 웹페이지 즐겨찾기