Google Apps Scriptを使ってGmailの新着メールをChatWorkに通知してみた
皆さん、コミュニケーションツールはどのようなツールを使っているでしょうか。
弊社ではチャットツールとしてChatWorkを利用しています。
ChatWorkには嬉しいことにREST-APIが実装されていますので、
Google Apps Scriptを使用してGmailに届いたお問い合わせメールをChatWorkに通知するスクリプトを作成してみました。
Chatwork APIトークンの取得
まずはChatwork APIトークンを取得しましょう。
ChatWork APIは現在(2016年9月6日時点)ではプレビュー版として提供されており、
利用するには申請を行う必要があります。
チャットワークAPIドキュメントから申請を行うことが出来ます。
ただし、ビジネスプランでは管理者権限があるユーザからしか申請が行えないので注意しましょう。
また、申請してからAPIが利用可能になるまで少し時間がかかりますので、予め申請しておきましょう。
APIが利用可能になるとChatWorkマイページの動作設定からAPIトークンを発行することが出来ます。
Apps Scriptの作成
下記画像のようにGoogle DriveからApps Scriptプロジェクトを作成することが出来ます。
スクリプトのサンプルは下記になります。
API_TOKENは先程取得したトークン、ROOM_IDはChatWorkのURLでrid000000となっているrid以降の数列です。
通知したいChatWorkグループのROOM_IDを取得して下さい。
内容としてはとても簡単で、Gmailからお問い合わせメールにマッチするタイトルの新着メールを取得し、
メールの内容をChatWorkに通知しています。
メールの検索にはGmailで使用できる検索演算子を使用することが出来ます。
この検索演算子を上手く使って通知したいメールの検索をしましょう。
また、HTTP通信には標準でApps Scriptに提供されているUrlFetchAppクラスを使用しています。
function notifyMail() {
var token = API_TOKEN;
var roomId = ROOM_ID;
try {
// 未読メールを取得する 検索クエリを変更すれば転送するメールを絞ることも可能
var threads = GmailApp.search("is:unread subject:(お問い合わせがありました OR お申込がありました)");
Logger.log("Found " + threads.length + " threads.");
if (threads == null || threads.length === 0) return;
for (var i = 0, tlen = threads.length; i < tlen; i++) {
var msgs = threads[i].getMessages();
for (var j = 0, mlen = msgs.length; j < mlen; j++) {
var msg = msgs[j];
if (!msg.isUnread()) continue;
var from = msg.getFrom();
var subject = msg.getSubject();
var body = msg.getBody();
// http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-messages
UrlFetchApp.fetch('https://api.chatwork.com/v1/rooms/' + roomId + '/messages', {
headers: {'X-ChatWorkToken': token},
method: 'post',
payload: 'body=' + encodeURIComponent(
"※こちらのチャットはAPIを使用して自動送信しております。" + "\n"
+ '[info][title]' + subject + '\n'
+ 'from: ' + from + '[/title]'
+ body + '[/info]'
)
});
msg.markRead();
}
}
} catch(error) {
Logger.log("message:" + error.message + "\nfileName:" + error.fileName + "\nlineNumber:" + error.lineNumber + "\nstack:" + error.stack);
}
}
Apps Scriptの起動トリガーを設定
最後にApps Scriptの起動トリガーを設定しましょう。
上部ナビゲーション内の「リソース」から「現在のプロジェクトのトリガー」をクリックして下さい。
Gmailを利用するスクリプトでは、時間主導型のトリガーを利用できます。
最短1分毎に起動するように設定することが出来ますので、お好みのタイミングを設定して下さい。
保存ボタンをクリックして設定したトリガーを保存すれば設定は完了です。
まとめ
たったこれだけで、わざわざGmailを開くことなくChatWorkを開いているだけで新着メールが分かるようになりました。
Google Apps ScriptやChatWork APIにはまだまだ沢山便利な使い方があります。
今後も便利な使い方を紹介していきたいと思いますので、楽しみにお待ち下さい!
-
お問い合わせ
SiTest の導入検討や
他社ツールとの違い・比較について
弊社のプロフェッショナルが
喜んでサポートいたします。 -
コンサルティング
ヒートマップの活用、ABテストの実施や
フォームの改善でお困りの方は、
弊社のプロフェッショナルが
コンサルティングいたします。
今すぐお気軽にご相談ください。
今すぐお気軽に
ご相談ください。
(平日 10:00~19:00)
今すぐお気軽に
ご相談ください。
0120-315-465
(平日 10:00~19:00)
グラッドキューブは
「ISMS認証」を取得しています。
認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業
「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。