【GAS】Gmail의 읽지 않은 메일을 Chatwork에 통지

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

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

이번에는 Gmail의 읽지 않은 메일을 15분 간격으로 체크하고, 읽지 않은 메일이 있으면 Chatwork에 메시지를 보내려고 합니다.

API 토큰 얻기



Chatwork에 로그인하고 오른쪽 상단 메뉴에서 API 설정을 선택합니다.


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


룸 ID 얻기



메시지를 전송하고자 하는 그룹 채팅의 룸 ID를 획득하는 단계;

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

라이브러리 로드



Chatwork에 메시지 전송은 "Chatwork Client for Google Apps Script"을 이용합니다.

프로젝트 키: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT



스크립트


const token = 'APIトークン';
const room_id = 'メッセージを送信したいグループチャットのルームID';

function myFunction() {

  // Gmailを取得する条件を指定(未読)
  // 指定できる条件は以下ページを参照してください
  // https://support.google.com/mail/answer/7190?hl=ja
  var searchQuery = "is:unread";

  // Gmailからスレッドを取得
  // 引数:検索条件,開始スレッドのインデックス,最大取得数
  // 1日の取得件数には制限があります。数の指定にはご注意ください。
  // https://tonari-it.com/gas-gmail-search-limit/ にわかりやすく説明があります。
  var threads = GmailApp.search(searchQuery, 0, 30);

  // スレッドに含まれるメッセージを全て取得
  var messages = GmailApp.getMessagesForThreads(threads);

  for(var i = 0; i < messages.length; i++) {

    var date = messages[i][0].getDate(); // 受信日時
    var subject = messages[i][0].getSubject(); // 件名
    var from = messages[i][0].getFrom(); // 送信者
    var link = threads[i].getPermalink(); // Gmailリンク
    var post_message = "[info][title]Gmailを受信しました(" + Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss') + ")[/title]" +
      "subject: " + subject + "\n" +
      "From: " + from + "\n" +
      link +
      "[/info]";

    // メッセージ送信
    sendMessage(post_message);

  }

}

function sendMessage(message) {
  var client = ChatWorkClient.factory({token: token});
  client.sendMessage({
    room_id: room_id,
    body: message
  });
}



트리거 설정



스크립트를 15분 간격으로 이동하는 트리거를 설정합니다.

편집 > 현재 프로젝트의 트리거를 선택합니다.


트리거 추가를 클릭합니다.


내용을 설정하고 "저장"을 클릭합니다.

이번에는 15분 간격으로 Gmail의 읽지 않은 메일의 유무를 확인하고 싶으므로 다음을 설정합니다.
  • 시간 기반 트리거 유형 선택 : 분 기반 타이머
  • 시간 간격 선택: 15분 간격

  • ※1일의 메일 취득 건수에는 제한이 있습니다. 수의 지정에는 주의해 주십시오.
    아래에 알기 쉽게 정리해 줍니다.
    Google Apps Script에서 Gmail 읽기 수 제한 및 해결 방법

    테스트



    할 수 있었습니다!

    URL을 클릭하면 메시지가 표시됨


    마지막으로



    그룹 채팅으로 메시지를 보낼 때 스마트폰에서 푸시 알림을 받으려면 스마트폰 앱에서 '모든 메시지'를 선택하세요.

    좋은 웹페이지 즐겨찾기