n8nを使って、DiscordチャンネルへRSSを通知させる

4 min read読了の目安(約3900字

前提条件

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やサーバのコマンドを実行したり便利そうですね。