本ガイドでは、コンテンツの閲覧通知を※Google Apps Script(GAS)を用いてChatworkの指定チャットルームへ自動転送する手順を解説します。※Googleアカウントが必要です。
1. 事前準備
設定には以下の情報が必要です。あらかじめご用意ください。
Chatwork APIトークン
Chatworkにログインし、[プロフィール] > [サービス連携] > [APIトークン] から取得。
投稿先ルームID
通知したいチャットルームのURL末尾にある数字(例:
rid12345678の12345678部分)
通知用メールアドレス
通知を受け取るメールアドレスを作成します。エイリアス機能を用いてPLAINER通知用のアドレスを用意いただくとスムーズです( 例 yourname+plainer@gmail.com)
PLAINERの閲覧通知設定
メールによるコンテンツの閲覧通知 機能で通知用アドレスを指定します。
2. スプレッドシートとスクリプトの設定
スプレッドシートの作成
新規スプレッドシートを作成し、名前を「メール着信管理」などに変更します。
エディタの起動
上部メニュー [拡張機能] > [Apps Script] をクリックします。
コードの貼り付け
開いたエディタに、下記のサンプルコードをコピー&ペーストします。
変数の書き換え
コード内の
CW_TOKEN、ROOM_ID、SEARCH_QUERY(エイリアスアドレス)をご自身の環境に合わせて書き換えてください。
保存
ツールバーの「プロジェクトを保存(上書き保存アイコン)」をクリックします。
サンプルコード
// --- 設定項目 ---
const CW_TOKEN = 'XXXX'; // Chatwork APIトークンを指定
const ROOM_ID = 'XXXXX'; // 投稿先ルームIDを指定
const SEARCH_QUERY = 'is:unread to:XXXXXXXXX'; // 通知用メールアドレスを指定
const SHEET_NAME = '閲覧履歴';
function fetchMailAndPostToChatwork() {
const threads = GmailApp.search(SEARCH_QUERY);
if (threads.length === 0) return;
// シートの準備(なければ作成)
const sheet = getOrCreateSheet();
for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
if (message.isUnread()) {
const date = message.getDate();
const from = message.getFrom();
const subject = message.getSubject();
const body = message.getPlainBody();
// 1. Chatwork用のメッセージ組み立て
const cwMessage =
'[info][title]メール着信通知[/title]' +
'【送信者】: ' + from + '\n' +
'【日時】: ' + Utilities.formatDate(date, 'JST', 'yyyy/MM/dd HH:mm') + '\n' +
'【件名】: ' + subject + '\n\n' +
body + '[/info]';
// 2. Chatwork APIへ送信
sendMessageToChatwork(cwMessage);
// 3. スプレッドシートに記録(A列:日時, B列:内容)
const logContent = `件名: ${subject} / 送信者: ${from}`;
sheet.appendRow([date, logContent]);
// 4. 処理済みとして既読にする
message.markRead();
}
}
}
}
// シートを取得、なければ作成する関数
function getOrCreateSheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = ss.insertSheet(SHEET_NAME);
// ヘッダー(1行目)を作成
sheet.appendRow(['日時', '内容']);
sheet.getRange("A1:B1").setFontWeight("bold").setBackground("#eeeeee");
}
return sheet;
}
// Chatwork送信関数
function sendMessageToChatwork(text) {
const url = 'https://api.chatwork.com/v2/rooms/' + ROOM_ID + '/messages';
const options = {
'method': 'post',
'headers': { 'X-ChatWorkToken': CW_TOKEN },
'payload': { 'body': text },
'muteHttpExceptions': true
};
UrlFetchApp.fetch(url, options);
}
3. 実行権限の承認
初めて実行する際は、Googleアカウントへのアクセス許可が必要です。
エディタ上部の [実行] ボタンを押します。
「承認が必要」というポップアップが出たら [権限を確認] をクリック。
ご自身のアカウントを選択し、「このアプリは Google で確認されていません」と出た場合は [詳細] > [(プロジェクト名)に移動(安全ではない)] をクリック。
[許可] をクリックします。
※実行後、スプレッドシートに「閲覧履歴シート」が自動作成されていれば成功です。
4. 自動実行(トリガー)の設定
5分ごとにメールをチェックするように設定します。
エディタ左側の 時計アイコン(トリガー) をクリック。
右下の [トリガーを追加] をクリック。
以下のように設定して [保存] します。
実行する関数:
fetchMailAndPostToChatworkイベントのソース:時間主導型
時間ベースのタイマーの種類:分ベースのタイマー
時間の間隔:5分おき
5. 動作確認と運用
テスト送信:設定したエイリアスアドレス宛にメールを送信します。
チャット確認:約5分以内にChatworkへ通知が届くか確認してください。
ログ確認:スプレッドシートの「閲覧履歴」に日時と内容が追記されているか確認してください。
Chatworkへの通知が届いた場合Google Apps Scriptの設定は完了です。
メールによるコンテンツの閲覧通知 によりメールが送信されれば、Chatworkに通知が転送されます。
通知例

