以前、Web の情報収集ツールとして IFTTTとChatwork を使用する | Monotalk IFTTT と Chatwork の連携して、RSSの更新を Chatwork に通知する方法を記載しました。
個人で使用する分には IFTTT は便利ですが、企業内で使用したい場合、セキュリティルールで IFTTT の使用が難しい場合があります。
企業で G Suite を使っているケースだと、Google Apps Script は自由に使える可能性が高く、RSS を Chatwork に通知する スクリプトを作ってみました。
作ったものについて記載します。


作成したスクリプトについて

以下、リポジトリに UP しました。
kemsakurai/gas-RSS2Chatwork: Container bound script to notify the RSS to Chatwork


何ができるのか

スプレッドシート に Feed URL、通知先のChatwork の ルームIDを指定すると、定期的に Feed の 情報が Chatwork に通知されます。
2019-02-16 11.21.10.png - Google ドライブ

  • 使用イメージ
    以下のような使い方をお勧めします。

    1. テーマを決めてテーマごとにChatwork ルームを作り、そのルームに Feed 更新を通知する。
    2. Feed について話し合うルームを対で作成しておいて、通知された情報を議論する場合は、そのルームにコメントを残す。
  • 仕事上利用する場合、収集に適する情報
    大量のFeed 登録は、通知がうるさくなるのでお薦めせず、定期的に収集しないと企業にとってマイナスプラスなる情報に絞って通知するのが良いです。
    個人的には、以下が浮かびます。

    • CVE、脆弱性情報 の収集

    • 競合他社の動向調査

    • 会社で使用している、Cloud サービス、ソフトウェアの Version UP 情報


使い方

以下、使用方法について説明します。
.clasp の設定、デプロイが面倒な方は、初期設定済みのスプレッドシート作りましたので、こちらのコピーを作成して、Chatwork の Token を発行、Token設定実施、スケジュール実行の設定を実施すれば使えるようになります。

前提

Node.js と、clasp のインストールが前提で必要です。
参考になる記事をリンクしておきます。

リポジトリをクローンする

git clone https://github.com/kemsakurai/gas-RSS2Chatwork.git <project_name>   

クローンしたディレクトリに移動して、npm install実行する

cd <project_name>
npm install

.clasp.jsonスクリプト ID を変更する

記録先となるスプレッドシートを作成し、コンテナバインドスクリプト のスクリプト ID を取得します。
スクリプト ID の取得手順は以下の通りです。

  • 作成したスプレッドシートのツールからスクリプトエディタを開きます。
    2019-02-16 12.05.25.png - Google ドライブ

  • スクリプトエディタが起動します。ファイルメニューのプロジェクトのプロパティを開きます。
    2019-02-16 12.22.07.png - Google ドライブ

  • ウィンドウが開きます。スクリプト ID が表示されるのでコピーします。
    2019-02-16 12.26.12.png - Google ドライブ

  • .clasp.json内容を修正
    .clasp.json scriptId に 取得した スクリプト ID を貼り付けます。

    {
      "scriptId": "<your_script_id>",
      "rootDir": "dist"
    }
    

ビルド、デプロイ

  • ビルド
    bundle.js updateSchedule.html dist ディクレトリ配下に作成します。

    npm run build     
    

  • デプロイ
    ビルドし、.clasp.json指定したスクリプトに対してデプロイを実施します。

    npm run deploy     
    

初期設定

デプロイ後に、初期設定を行います。

必須設定

  • 初期設定シートの作成
    メニュー gas-RSS2Chatwork > 初期設定 > 設定シート作成 RSS の設定シートを作成します。
    2019-02-16 12.50.02.png - Google ドライブ
    実行するとRSS シートと、Room シートを作成します。

  • Token設定
    メニュー gas-RSS2Chatwork > 初期設定 > Token設定 Chatwork の API Token の設定を行います。
    2019-02-16 13.04.42.png - Google ドライブ

オプション設定

以下の設定はオプションです。実行しなくても動作します。
* ルーム一覧の取得
Chatwork の API Token の持ち主のルーム情報を取得し、Room シートに設定します。
通知するルームIDがわからない場合、使用すると良いです。

  • description の文字列設定
    全文を含む Feed の情報があり、長すぎる場合設定します。
    デフォルト設定だと、制限しないなります。

シート RSSカラムの説明

シート RSSカラムについて説明します。
NotesURLRoomId設定必須で、未入力の場合通知の対象外になります。

  • Notes
    RSS の説明を記載します。

  • URL
    RSS のURL を記載します。

  • RoomId
    通知先となる Chatwork の ルームID を設定します。
    通知先のルームには Chatwork Token の持ち主が、参加している必要があり、参加していない場合、通知に失敗しエラーとなります。

  • LastUpdateDate
    RSS の最終更新日時を記録します。
    前回通知時の時間を記録しておくためのカラムで、Google Apps Script から更新します。
    未設定の場合、実行時刻から 24 時間前が最終更新時刻となり、実行後に RSS の最終更新時刻が設定されます。

通知メッセージのフォーマット

以下のフォーマットで通知されます。
メッセージ部上段が 記事 URL 、中段が RSS の 本文、 下段がカラムNotes設定値になります。
2019-02-16 13.32.52.png - Google ドライブ

実行方法

実行方法について説明します。

  • 更新実行
    Chatwork への通知処理を手動実行します。
    初回実行、トラブル発生時の確認に使用するのが良いです。
    2019-02-16 13.38.51.png - Google ドライブ

  • スケジュール実行
    メニューから時刻トリガーの設定が可能です。
    勿論、スクリプトエディタからのスケジュール実行できますが、スケジュール実行の設定がわからない方はこちらを使用してください。
    2019-02-16 13.39.39.png - Google ドライブ


参考

以上です。

コメント