Gmail에 온 이메일을 ChatWork로 전달

Gmail의 특정 이메일 (스레드)을 채팅으로 건너 뛰기



GoogleAppsScript를 사용하여
· Gmail에서 특정 조건에 맞는 이메일을 가져옵니다.
· ChatWork 라이브러리를 사용하여 메시지 전송
라는 스크립트를 만듭니다.

준비: ChatWork 토큰 정보 등



API 설정에서 얻을 수 있습니다.
개인 메뉴 안에서.


「API Token」보다 토큰을 발행할 수 있으므로, 발행하면 그것을 복사해 둡니다.


또, 메세지를 날리고 싶은 채팅 룸(마이 채팅등)의 ID도 필요하므로, 그것도 메모해 둡니다.
※URL의 숫자 부분


To를 붙이는 경우에는 계정 ID도 필요하므로, 그것도 조사해 둡니다.
적절한 채팅으로 인용 또는 회신 할 때 메시지의 머리에 붙는 태그
aid=XXXXXXXX
라는 부분이 있습니다만, 이것이 계정 ID가 됩니다.

스크립트에 라이브러리 추가



드라이브에서 새 스크립트를 작성합니다.
프로젝트명이나 스크립트명등은 적당하게.

라이브러리의 추가는, 「리소스」->「라이브러리」로부터 실시합니다.


팝업 하단에 프로젝트 키를 입력하여 추가합니다.


채팅 워크 라이브러리는 안의 사람이 비공식적으로 만들어 줍니다.
채팅 워크 API를 Google Apps Script에서 사용해 보았습니다.
GitHub
프로젝트 키는 다음과 같습니다.M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

스크립트 작성



이런 느낌입니다.
function main() {
  //チャットワークトークン・ID
  const CW_TOKEN = "最初に取得したトークン";
  const CW_ROOM = チャットルームID;
  const CW_TO = アカウントID;

  //Gmailから特定条件のスレッドを検索しメールを取り出す
  var strTerms = 'is:unread "メール取得条件"';
  var myThreads = GmailApp.search(strTerms, 0, 50); //条件にマッチしたスレッドを取得
  var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納

  //チャットワークAPI
  var client = ChatWorkClient.factory({
    token: CW_TOKEN
  });

  //各スレッド×メール
  for (var i = myMsgs.length - 1; i >= 0; i--) {
    var msgsInThread = myMsgs[i];
    for (var j = 0; j < msgsInThread.length; j++) {
      var msg = msgsInThread[j];

      //未読のみ
      if (msg.isUnread()) {
        //メールを既読にする
        msg.markRead();

        //メッセージ作成
        var msgBody = "[To:" + CW_TO + "]" +
                      "[info]" +
                          "[title]" + msg.getSubject() + "[/title]" +
                          msg.getFrom() + "[hr]" +
                          msg.getPlainBody().slice(0,400) + "[hr]" +
                          msg.getDate() +
                      "[/info]";

        //チャットワークに送る
        client.sendMessage({
          room_id: CW_ROOM,
          body: msgBody
        });
      }
    }
  }
}

읽지 않은 메일을 주워 메시지를 보내면 읽을 수 있다는 구조입니다.
메일 검색 조건은 Gmail에서 사용할 수 있는 것이 그대로 사용할 수 있습니다.
Gmail에서 사용할 수 있는 검색 연산자

또, 취득한 메시지는 메일 박스의 위로부터 (최신으로부터)이므로,
루프는 뒤에서 돌려 수신 순서로 메시지를 보내도록 하고 있습니다.

채팅 작업 메시지는 태그로 장식할 수 있습니다.
메시지 기법

트리거에 등록



그리고는 스크립트를 트리거에 등록해 두면 OK.

좋은 웹페이지 즐겨찾기