弊社では一部の業務にGRCというGoogleやYahooなどの検索順位をチェックするツールを使用しております。
このGRCというツールは非常に便利で、検索順位が閾値以下になったらアラートを出すように設定できますし、それをメールで受け取るようにすることも出来ます。
ただ、弊社では社内のやり取りにチャットワークを使用しているため、なんとか情報をチャットワークに1本化出来ないかと考えていました。
今回、GmailとチャットワークAPIを使ってチャットワークにGRCのアラート情報を投稿出来るようになりましたので、その方法をご紹介します。
概要

今回ご紹介するのはGRCからメール送信されたアラート情報をGmailで受け取り、Google Apps Script(以下GAS)とチャットワークAPIを使ってチャットワークに自動投稿する方法です。
GRCの設定
アラート項目の設定
アラート項目の設定を行います。
今回は順位に関わらず毎日メール送信するようにしたいので、全て「1位以下」を条件に設定しています。
ここの条件設定はそれぞれの運用スタイルに合わせてカスタマイズしてください。
メール送信設定
GRCのメニュー[オプション -> アラートメール]からメール送信設定を行います。
ここで設定した送信元メールアドレスを使ってGmailにGRCからメールが届いたか監視をおこないます。
チャットワークの設定
APIトークンの発行
チャットワークAPIの利用するためにはAPIトークンを発行する必要があります。
APIトークンの発行は、チャットワークの動作設定にある「API発行」タブから行います。

API発行タブがない人は権限が付与されていないので、管理者に申請してください。
自動投稿するルームのルームID取得
GRCのアラートメールを投稿するルームのルームIDを取得します。
ルームIDはURLのrid以降の数字です。
GASのスクリプト作成
GoogleスプレッドシートにGASのスクリプトを作成します。
Gmailの未読メールを検索し、送信元がGRCのメールだけ取得します。
GRCからのアラートメールをチャットワークAPIを使ってチャットワークの対象ルームに投稿。
この時に、先ほど取得したチャットワークAPIトークンとルームIDを使用します。
最後に、チャットワークに投稿したGmailのアラートメールを既読にします。
function notifyMail() {
var token = '[チャットワークAPIトークン]';
var roomId = '[ルームID]';
// 未読メールを取得する 検索クエリを変更すれば転送するメールを絞ることも可能
var threads = GmailApp.search('is:unread',0, 100);
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.getPlainBody();
// GRC以外のメールは飛ばす
if (from != '[GRCの送信元メールアドレス]') continue;
// 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(
// http://developer.chatwork.com/ja/messagenotation.html
'[info][title]' + subject + '[/title]'
+ body + '[/info]'
)
});
//チャットワークに投稿したメールを既読にする。
msg.markRead();
}
}
}
GASのトリガー設定
最後にGASを定期的に実行してGmailを監視するためのトリガーを設定します。
今回は2時間毎にチェックする設定ですので、イベントを「時間主導型」「時タイマー」にして、間隔を「2時間ごと」に設定します。

GASを使用する最大のメリットはこのトリガー設定です。
GAS以外でトリガーを実現しようと思うとcronやタスクスケジューラのなど少し管理が面倒になりますが、GASを使う場合はコードとスケジューラを1箇所で管理できます。
これでGRCで計測した掲載順位を1日1回チャットワークに自動投稿できる仕組みの完成です。