【GAS】Gmail의 읽지 않은 메일을 Chatwork에 통지
9574 단어 ChatworkGoogleAppsScriptgas
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의 읽지 않은 메일의 유무를 확인하고 싶으므로 다음을 설정합니다.
메시지를 전송하고자 하는 그룹 채팅의 룸 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의 읽지 않은 메일의 유무를 확인하고 싶으므로 다음을 설정합니다.
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의 읽지 않은 메일의 유무를 확인하고 싶으므로 다음을 설정합니다.
※1일의 메일 취득 건수에는 제한이 있습니다. 수의 지정에는 주의해 주십시오.
아래에 알기 쉽게 정리해 줍니다.
Google Apps Script에서 Gmail 읽기 수 제한 및 해결 방법
테스트
할 수 있었습니다!
URL을 클릭하면 메시지가 표시됨
마지막으로
그룹 채팅으로 메시지를 보낼 때 스마트폰에서 푸시 알림을 받으려면 스마트폰 앱에서 '모든 메시지'를 선택하세요.
Reference
이 문제에 관하여(【GAS】Gmail의 읽지 않은 메일을 Chatwork에 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sakaguchi_mami/items/71291d2065ab618fa7b3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그룹 채팅으로 메시지를 보낼 때 스마트폰에서 푸시 알림을 받으려면 스마트폰 앱에서 '모든 메시지'를 선택하세요.
Reference
이 문제에 관하여(【GAS】Gmail의 읽지 않은 메일을 Chatwork에 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sakaguchi_mami/items/71291d2065ab618fa7b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)