ブログ

GRCで計測した検索順位をチャットワークに自動投稿する方法

2015.06.18

GRCで計測した検索順位をチャットワークに自動投稿する方法

弊社では一部の業務にGRCというGoogleやYahooなどの検索順位をチェックするツールを使用しております。

このGRCというツールは非常に便利で、検索順位が閾値以下になったらアラートを出すように設定できますし、それをメールで受け取るようにすることも出来ます。

ただ、弊社では社内のやり取りにチャットワークを使用しているため、なんとか情報をチャットワークに1本化出来ないかと考えていました。

今回、GmailとチャットワークAPIを使ってチャットワークにGRCのアラート情報を投稿出来るようになりましたので、その方法をご紹介します。

概要

GRCチャットワーク連携全体図
今回ご紹介するのはGRCからメール送信されたアラート情報をGmailで受け取り、Google Apps Script(以下GAS)とチャットワークAPIを使ってチャットワークに自動投稿する方法です。

GRCの設定

アラート項目の設定

アラート項目の設定を行います。

今回は順位に関わらず毎日メール送信するようにしたいので、全て「1位以下」を条件に設定しています。

ここの条件設定はそれぞれの運用スタイルに合わせてカスタマイズしてください。

GRCアラート設定

メール送信設定

GRCのメニュー[オプション -> アラートメール]からメール送信設定を行います。

ここで設定した送信元メールアドレスを使ってGmailにGRCからメールが届いたか監視をおこないます。

チャットワークの設定

APIトークンの発行

チャットワークAPIの利用するためにはAPIトークンを発行する必要があります。

APIトークンの発行は、チャットワークの動作設定にある「API発行」タブから行います。

チャットワークAPIトークンの発行
API発行タブがない人は権限が付与されていないので、管理者に申請してください。

自動投稿するルームのルームID取得

GRCのアラートメールを投稿するルームのルームIDを取得します。

ルームIDはURLのrid以降の数字です。

チャットワークルームID

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を使用する最大のメリットはこのトリガー設定です。

GAS以外でトリガーを実現しようと思うとcronやタスクスケジューラのなど少し管理が面倒になりますが、GASを使う場合はコードとスケジューラを1箇所で管理できます。

これでGRCで計測した掲載順位を1日1回チャットワークに自動投稿できる仕組みの完成です。

集客やサイト改善などWebに関することなら、
何でもお気軽にお問い合わせください

メールでのお問い合わせ・ご相談

専用のお問い合わせフォームよりご連絡ください

お問い合わせフォーム

お電話でのお問い合わせ・ご相談

0120-439-241