n8nを使って、DiscordチャンネルへRSSを通知させる
前提条件
docker インストール済み
Discord 導入済み
n8n とは
オープンソースで使える定型作業を自動化してくれるツールです。
導入した経緯
以前はIFTTTを利用していましたが、
無料ではアプレットを3つしか利用できなくなったので、
代用サービスを検討していました。
DiscordのチャンネルへRSS情報を通知するために、
今回はn8nを利用することにしました。
ローカル端末でn8nを導入
今回はお試しなので、ローカル端末で導入してみます。
docker-compose.yml 作成
version: '3.1'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- 5678:5678
volumes:
- ~/.n8n:/root/.n8n
command: /bin/sh -c "n8n start"
docker 起動
docker-compose up -d
Discord Webhook URL作成
通知させるテキストチャンネルで「チェンネルを編集」をクリック
連携サービスを選択 → ウェブフックをクリック
新しいウェブフックをクリック
お名前を入力し、通知させたいチャンネルを選択
ウェブフックURLをコピー
ワークフローを作成
Workflows → New
Cronトリガーを作成
+ボタンをクリック
triggerタブを選択し、検索項目へ「cron」と入力
Add Cron Timeをクリック
ModeとMinuteへ好きなタイミングを設定させる
RSS Feed Readをトリガー作成
+ボタンをクリック
regularタブを選択し、検索項目へ「rss」と入力
購読したいRSSフィールドをURL項目へ入力
Excute Nodeボタンをクリックし、情報が取得出来るか確認
SplitlnBatchsトリガーを作成
+ボタンをクリック
regularタブを選択し、検索項目へ「split」と入力
Batch Sizeを出力したい個数に設定
Discordトリガーを作成
+ボタンをクリック
regularタブを選択し、検索項目へ「discord」と入力
Webhook URL項目へDiscordで作成したWebhook URLを入力
text項目をクリックし、Add Expressionをクリック
SplitlnBatchs → OutPut Data → JSON 出力したい項目を選択
Excute Nodeボタンをクリックし、情報が取得出来るか確認
ワークフローを保存
名前を決めて保存します。
ワークフローをアクティブにする
最後にワークフローをアクティブにしておきます。
これを実施しないとcronしていても実施されません。
アクティブ前
yesをクリック
アクティブ後
今回はお試し導入のため、ローカルPCへ導入しています。
もう少し改善していきたければ、ラズパイか格安vpsへ引っ越すかも知れません。
公式にアップロードされているワークフロー
n8n公式にワークフローがアップロードされています。
自分で作成する前に探してみるといいかも知れません。
良さげなトリガー
「Execute Command」はn8nを実施している環境のコマンドを実行できるみたいなので、
WebAPIやサーバのコマンドを実行したり便利そうですね。
Discussion