- 記事一覧 >
- ブログ記事
ファイル/フォルダの追加更新削除をWebHookを使って通知するアプリ
はじめに
弊社では社内のアクティビティを可視化するために、GitLab,Wekanの操作をWebHookを使って通知しています。
詳細は、別記事「GitLab,Wekan→Rocket.Chat→SlackのWebHook」にアップ済みです。
これと同じようにファイル/フォルダの追加更新削除をWebHookを使って通知するアプリ(サービス)を作成しましたので、概要を説明します。
アプリの本体、ソースコードは公開していません。
・動作内容
・Rocket.ChatにIncoming WebHookを設定
・監視アプリインストール
・監視対象フォルダ設定
・WebHook URLの設定
・動作確認
動作内容
以下の図のように、ファイルサーバーの特定フォルダを監視し、監視フォルダ直下でファイル/フォルダの追加更新削除が行われたら、WebHookでRocket.Chatへ通知、さらにRocket.Chat→Slackへ伝播するイメージです。
Rocket.Chat→Slackの部分は、別記事「GitLab,Wekan→Rocket.Chat→SlackのWebHook」の内容と重複しますので、そちらをご覧ください。
監視対象は、ローカルディスクでもできましたが、運用上ファイルサーバー(NAS)の方を監視対象とするため、ファイルサーバーを監視前提で進めていきます。
Rocket.ChatにIncoming WebHookを設定
管理者でログイン後、ユーザーのアイコンをクリックして、「管理」をクリックします。
「サービス連携」をクリックします。
「Incoming」を選択して、「+New」をクリックします。
「名前」は、"フォルダ監視"とし、投稿先チャンネルは、"#general"とします。
「投稿ユーザー」は、Rocket.Chatで登録されているユーザー名を入力します。
絵文字は、アバターの画像になります。https://www.webfx.com/tools/emoji-cheat-sheet/ 等で調べて、絵文字コードを入力します。今回 :file_folder:
とします。
今回、Scriptは登録しません。スクリプトを有効にするをオフのままにします。
スクリプトを使わない理由は、以下のように監視アプリから、text
が欲しい形で送られてくるからです。text
は、そのままチャットのテキストに採用されます。
{
"username": "ファイル作成",
"text": "ファイル '新しいテキスト ドキュメント.txt' を作成しました。"
}
「有効」スイッチをオンにして、保存ボタンをクリックします。
保存後、以下のように Webhook URL が表示されるため、これをコピーしておきます。
以上で、Rocket.Chat側のWebHook受け入れ準備は完了です。
監視アプリインストール
msiをダブルクリックしてインストールします。
「Folder Monitoring Service」としてサービスに登録されます。
設定ファイル、exeが C:\Program Files (x86)\Common Files\monitoring
に登録されます。
監視対象フォルダ設定
ファイルサーバーに接続して、ユーザー名、パスワードを入力、このとき、「資格情報を記憶する」にチェックを入れます。
option.exeを起動して、先ほど接続したファイルサーバーのフォルダを指定します。
「Folder Monitoring Service」のプロパティ→ログオン→アカウントで、ファイルサーバーに接続したユーザー(今操作しているユーザー)のアカウント名、パスワードを入力し、OKをクリックします。
このときに登録するのは、ファイルサーバーへの接続に必要なユーザー名、パスワードではありません。そちらは、「資格情報を記憶する」に記憶されています。
サービスを再起動します。
WebHook URLの設定
config.iniを開いて、WebHook URLをRocket.Chatで取得したURLに書き換えます。
.jsonファイルは、通知内容が書かれています。これを書き換えると、通知内容を変えられる仕様にしましたが、このままにします。
FileRenamed.jsonの例
{
"username": "ファイル名変更",
"text": "ファイル名を '%%OLD_FULL_PATH%%' から '%%NAME%%' へ変更しました。"
}
⇒受け手がRocket.Chat以外でも問題無いように可変仕様にしましたが、今回は、この内容で目的は達成できます。
動作確認
準備が整ったため、監視対象フォルダにファイルを置いてみます。
監視アプリ→WebHook→Rocket.Chat へ通知が来て、投稿されました。
さらに、「GitLab,Wekan→Rocket.Chat→SlackのWebHook」のRocket.Chat→Slackの設定をしている場合、Slackにも同じ内容が投稿されます。
ファイルを更新します。(上書き保存)
ファイルをリネームします。
ファイルを削除します。
フォルダを作成します。
フォルダをリネームします。
フォルダを削除します。
できました!
その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。