以前、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 に通知されます。
-
使用イメージ
以下のような使い方をお勧めします。- テーマを決めてテーマごとにChatwork ルームを作り、そのルームに Feed 更新を通知する。
- Feed について話し合うルームを対で作成しておいて、通知された情報を議論する場合は、そのルームにコメントを残す。
-
仕事上利用する場合、収集に適する情報
大量のFeed 登録は、通知がうるさくなるのでお薦めせず、定期的に収集しないと企業にとってマイナス
、プラス
になる情報に絞って通知するのが良いです。
個人的には、以下が浮かびます。-
CVE、脆弱性情報 の収集
-
競合他社の動向調査
-
会社で使用している、Cloud サービス、ソフトウェアの Version UP 情報
-
使い方
以下、使用方法について説明します。
.clasp の設定、デプロイが面倒な方は、初期設定済みのスプレッドシート を作りましたので、こちらのコピーを作成して、Chatwork の Token を発行、Token設定
を実施、スケジュール実行の設定を実施すれば使えるようになります。
前提
Node.js と、clasp のインストールが前提で必要です。
参考になる記事をリンクしておきます。
- Node.js npm の インストール。
-
clasp の インストール。
-
Chatwork API Token の発行
リポジトリをクローンする
git clone https://github.com/kemsakurai/gas-RSS2Chatwork.git <project_name>
クローンしたディレクトリに移動して、npm install
を実行する
cd <project_name>
npm install
.clasp.json
のスクリプト ID を変更する
記録先となるスプレッドシートを作成し、コンテナバインドスクリプト のスクリプト ID を取得します。
スクリプト ID の取得手順は以下の通りです。
-
作成したスプレッドシートのツールからスクリプトエディタを開きます。
-
スクリプトエディタが起動します。ファイルメニューのプロジェクトのプロパティを開きます。
-
ウィンドウが開きます。スクリプト ID が表示されるのでコピーします。
-
.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 の設定シートを作成します。
実行するとRSS
シートと、Room
シートを作成します。 -
Token設定
メニューgas-RSS2Chatwork
>初期設定
>Token設定
で Chatwork の API Token の設定を行います。
オプション設定
以下の設定はオプションです。実行しなくても動作します。
* ルーム一覧の取得
Chatwork の API Token の持ち主のルーム情報を取得し、Room
シートに設定します。
通知するルームIDがわからない場合、使用すると良いです。
- description の文字列設定
全文を含む Feed の情報があり、長すぎる場合設定します。
デフォルト設定だと、制限しない
になります。
シート RSS
のカラムの説明
シート RSS
のカラムについて説明します。
Notes
、URL
、RoomId
は設定必須で、未入力の場合通知の対象外になります。
-
Notes
RSS の説明を記載します。 -
URL
RSS のURL を記載します。 -
RoomId
通知先となる Chatwork の ルームID を設定します。
通知先のルームには Chatwork Token の持ち主が、参加している必要があり、参加していない場合、通知に失敗しエラーとなります。 -
LastUpdateDate
RSS の最終更新日時を記録します。
前回通知時の時間を記録しておくためのカラムで、Google Apps Script から更新します。
未設定の場合、実行時刻から 24 時間前が最終更新時刻となり、実行後に RSS の最終更新時刻が設定されます。
通知メッセージのフォーマット
以下のフォーマットで通知されます。
メッセージ部上段が 記事 URL 、中段が RSS の 本文、 下段がカラムNotes
の設定値になります。
実行方法
実行方法について説明します。
-
更新実行
Chatwork への通知処理を手動実行します。
初回実行、トラブル発生時の確認に使用するのが良いです。
-
スケジュール実行
メニューから時刻トリガーの設定が可能です。
勿論、スクリプトエディタからのスケジュール実行できますが、スケジュール実行の設定がわからない方はこちらを使用してください。
参考
- RSSリーダーはやめてGoogle Apps Scriptでchatworkにニュースを流してみた - Qiita
- Chatwork APIドキュメント
- TypeScriptのInterfaceとType aliasの比較 - Qiita
- 【IFTTTでチャットワーク連携】Googleカレンダーの予定登録と開始前リマインドを通知する
- Google Apps ScriptでRSS1.0・RSS2.0・ATOMを取得(フィルタ付き) - メモ
- TypetalkとGoogle App Scriptを組み合わせて、RSSのBOTを作ってみる。|アクトゼロ|SMMやSEMを中心としたデジタルマーケティング会社
- Zapier × ChatWorkでちょっと面倒な日々のタスクを自動化する - LCL Engineers’ Blog
以上です。
コメント