Skip to main content

Watcher To Discord クイックスタート

Discordは、音声通話、ビデオ通話、テキストメッセージング、メディア共有を通じてコミュニケーションを促進するインスタントメッセージングおよびVoIPソーシャルプラットフォームです。Discordでの会話は、プライベートまたは「サーバー」として知られる仮想コミュニティ内で行うことができます。

このチュートリアルでは、Watcher APIをNode-REDと統合して、WatcherからDiscordにシームレスにデータを送信する方法をガイドします。この統合により、通知を受信するシンプルで効率的な方法を提供し、さらなるアプリケーションと統合への扉を開きます

パート1. Node-REDでWatcherをセットアップする

ステップ1. Node-REDをセットアップする

まず最初に、以下のビデオに従ってWatcherでタスクを実行する必要があります。詳細を知りたい場合はこちらをクリックしてください

このセットアップにはNode-REDとWatcher APIが必要です。Node-REDをインストールしていない、またはWatcher APIと接続していない場合は、こちらから始めてください:Watcher to Node-RED クイックスタート

ステップ2. Watcherからのデータを準備する

WatcherをNode-REDと連携させるセットアップが完了したら、次のステップはWatcherからのデータをDiscord用に準備することです。ファンクションノードをダブルクリックして、データを適切にフォーマットします。

このチュートリアルの目的では、コンテンツと画像の両方を送信します。ただし、アプリケーションの必要に応じてデータを変換することをお勧めします。

データをフォーマットするNode-REDファンクションの例

node.send({ payload: msg.payload.value[0].content });

node.send({ payload: msg.payload.value[0].image_url });

パート 2. Discord Bot のセットアップ

ステップ 3. Discord にサインアップ

続行するには Discord アカウントが必要です。まだアカウントをお持ちでない場合は、こちらをクリックしてアカウント作成の手順を完了してください。

すでにアカウントをお持ちの場合は、ステップ 4 に進んでください。

Node-RED で設定したい Discord bot をすでにお持ちの場合は、パート 3 にスキップしてください。

ステップ 4. 開発アプリケーションの作成

Discord アカウントのセットアップとログインが完了したら、Discord Developer Portal に進み、新しいアプリケーションを作成します。

アプリケーションの名前を入力し、Discord の 開発者利用規約開発者ポリシー に同意してから、作成 をクリックします。

note

続行するには、Discord アカウントに有効なメールアドレスがリンクされている必要があります。Discord アカウントにメールアドレスが関連付けられていない場合は、次の手順に従ってください:アカウントのメールアドレスを変更する方法

ステップ 5. Bot 設定の構成

次に bot 設定を構成します。以下の手順に従ってください:

  1. アプリケーションページの左サイドバーで、設定 の下にある Bot タブをクリックします。

  2. Privileged Gateway Intents セクションに、いくつかのオプションが表示されます。このチュートリアルでは、MESSAGE CONTENT INTENT のみを有効にする必要があります。これにより、bot がメッセージの内容を読み取ることができます。MESSAGE CONTENT INTENT の横にあるスイッチを切り替えて有効にします。有効にすると、スイッチが青色に変わります。

bot に変更を加えるたびに、下部にポップアップが表示され、変更を保存 するよう促されます。続行する前に必ずこれを行ってください。

note

アプリケーションで何をするかによって、追加のインテントを有効にする必要がある場合があります。より複雑な bot 機能の場合、PRESENCE INTENTSERVER MEMBERS INTENT などの他のインテントを有効にする必要があるかもしれません。ただし、メッセージの送信のみを行うこのチュートリアルの目的では、MESSAGE CONTENT INTENT を有効にするだけで十分です。

Bot ページにいる間、ページの上部に Token というタイトルのセクションも表示されます。Reset Token ボタンをクリックして、bot の新しいトークンを生成します。

トークンをリセットすると、bot のコードでトークンを更新するまで bot が動作しなくなることに注意してください。リセットを続行する前に、bot の設定を更新する準備ができていることを確認してください。

多要素認証を求められる場合があります。その場合は、続行する前に必要に応じてこのステップを完了してください。

このトークンをコピーして安全に保管してください。後で Node-RED で bot を認証するためにこのトークンが必要になります。

warning

bot トークンを公開で共有しないでください。あなたのトークンを持つ人は誰でもあなたの bot を制御できます。誤ってトークンを公開してしまった場合は、このページで直ちにリセットしてください。

ステップ 6. OAuth2 設定の構成

次に、設定 の下にある OAuth2 タブに切り替え、OAuth2 URL Generator が表示されるまでスクロールダウンします。ここで、bot アプリケーションを作成しているため、bot スコープをチェックします。

bot スコープを選択すると、Bot Permissions を選択できる新しいボックスが表示されます。このチュートリアルの目的では、bot に Administrator 権限を与えます。これにより、bot はすべての機能にアクセスできるようになります。

warning

bot に Administrator 権限を付与すると、すべてのサーバー機能への完全なアクセス権が与えられます。本番環境では、最小権限の原則に従い、bot が意図した機能に必要な特定の権限のみを付与することをお勧めします。

最後に、スクロールダウンして新しく生成された URL を確認します。この URL をコピーして、ウェブブラウザのアドレスバーに貼り付けます。

ステップ 7. サーバーへの Bot アクセス許可

bot を追加したいサーバーを選択するよう求められます。ドロップダウンメニューから適切なサーバーを選択し、続行 をクリックします。

次の画面では、ボットに付与する権限の包括的なリストが表示されます。これらの権限は、ステップ6のOAuth2 URL Generatorで選択した内容に基づいています。各権限を慎重に確認してから、Authorizeをクリックしてください。

ステップ5と同様に、再度多要素認証を求められる場合があります。その場合は、続行する前に必要に応じてこのステップを完了してください。

認証が成功すると、選択したDiscordサーバーにボットが追加されたことを示す確認メッセージが表示されます。続行するために、Discordサーバーに戻ってください。

ステップ8. チャンネルIDの取得

Discordサーバーに到達したら、プロフィール情報の近くにある画面下部の歯車アイコン(⚙️)をクリックしてください。これによりユーザー設定が開きます。

ユーザー設定のサイドバーで、アプリ設定セクションまでスクロールダウンし、詳細設定をクリックしてください。開発者モードのトグルがオンになっていることを確認してください。

ユーザー設定を閉じて、Discordサーバーに戻ってください。使用したいチャンネルを右クリックしてください(このチュートリアルでは、generalチャンネルを使用しています)。表示されるコンテキストメニューの下部で、チャンネルIDをコピーをクリックしてください。このチャンネルIDをNode-REDフローで使用するために保存してください。

note

チャンネルIDは各Discordチャンネルの一意の識別子です。安全に保管し、公開で共有しないようにしてください。

パート3. DiscordとNode-REDの統合

ステップ9. Discordモジュールのインストール

三本線のアイコンをクリックし、パレットの管理オプションをクリックしてください。これにより、ノードを追加または削除できる新しいウィンドウが開きます。

パレット管理ウィンドウ内のインストールタブに切り替えてください。検索バーでdiscordと入力してモジュールを見つけてください。次に、node-red-contrib-discord-advancedエントリの横にあるinstallボタンをクリックしてください。

モジュールの動作方法とその潜在能力を最大化する方法をより深く理解したい場合は、ノードのドキュメントと関連するGithubリポジトリを確認することもお勧めします。

note

node-red-contrib-discord-advancedモジュールは、このチュートリアルの執筆時点(2024年8月)での現在の互換性と信頼性のために推奨されています。ただし、Node-REDモジュールの可用性と機能は時間の経過とともに変わる可能性があります。Node-REDライブラリまたはGitHubリポジトリで最新のユーザーフィードバックと互換性ノートを確認することをお勧めします。このモジュールで問題が発生した場合は、より適切なオプションについてNode-REDライブラリにリストされている他のDiscordモジュールを検討してください。

ステップ10. Discordノードの設定

Discordモジュールをインストールした後、discordMessageManagerノードをNode-REDフローにドラッグし、functionノードに接続してください。

discordMessageManagerノードをダブルクリックして設定パネルを開いてください。tokenフィールドの横にあるプラスアイコンをクリックして、新しいDiscord APIトークン設定を追加してください。

新しいウィンドウで、以下の情報を入力してください:

  • Token: ステップ5で取得したトークンを入力してください
  • Name: トークン設定に名前を付けてください

次に、AddまたはUpdateをクリックして設定を保存してください。

Channelフィールドに、ステップ8で取得したチャンネルIDを入力してください。次に、Doneをクリックして設定パネルを閉じてください。

note

複数のチャンネルとトリガー条件を持つより複雑な設定の場合、Channelフィールドを空白のままにして、msg.channelを使用してチャンネルを動的に設定できます。ただし、この基本的なチュートリアルでは、静的なチャンネルIDを使用します。

ステップ11. デプロイ

最後に、Node-REDインターフェースの右上にあるDeployボタンをクリックしてください。デプロイが完了すると、WatcherがNode-REDにメッセージを送信し、それがDiscordチャンネルに転送されます。

おめでとうございます!Node-REDを通じてDiscordにメッセージを送信するようにWatcherを正常に設定できました。この設定により、Watcherがトリガーされるたびに、Discordチャンネルでリアルタイム通知を受信できるようになります。これにより、開発プロジェクトにとって非常に魅力的な機会の数々が開かれました。次に作成される革新的なソリューションを心待ちにしています!

トラブルシューティング

DiscordとNode-REDを統合する際に、いくつかのエラーが発生する可能性があります。以下は2つの一般的なエラーとその詳細な解決手順です:

エラー: Used disallowed intents

このエラーは、ボットがDiscord Developer Portalで有効化されていないインテントを使用しようとしている場合に発生します。これを修正するには:

  1. Discord Developer Portalにアクセスします。
  2. アプリケーションを選択します。
  3. 左サイドバーのBotをクリックします。
  4. Privileged Gateway Intentsセクションまでスクロールダウンします。
  5. ボットが必要とするインテントを有効化します(一般的にはPresence IntentServer Members IntentMessage Content Intent)。
  6. ページ下部のSave Changesをクリックします。
  7. Node-REDフローを再デプロイします。

DiscordAPIError[50001]: Missing Access

このエラーは、ボットがアクションを実行するために必要な権限を持っていないことを示しています。これを解決するには:

  1. ボットが正しい権限でサーバーに招待されていることを確認します:
  • Discord Developer Portalにアクセスします。
  • アプリケーションを選択し、OAuth2セクションに移動します。
  • URL Generatorで、SCOPESの下のbotを選択します。
  • BOT PERMISSIONSの下で、ボットが必要とする権限を選択します(最低限、Send MessagesView Channels)。
  • 生成されたURLをコピーし、新しいタブで開いて、これらの権限でボットをサーバーに招待します。
  1. チャンネル権限を確認します:
  • Discordで、メッセージを送信しようとしているチャンネルを右クリックします。
  • Edit Channel > Permissionsをクリックします。
  • ボットロールが必要な権限、特にView ChannelSend Messagesを持っていることを確認します。
  1. Channel IDを確認します:
  • Node-RED設定のChannel IDが正しいことを再確認します。
  • ボイスチャンネルやカテゴリではなく、テキストチャンネルのIDを使用していることを確認します。
  1. ボットトークンを確認します:
  • Node-RED設定のトークンが正しく、最新であることを確認します。
  • 不明な場合は、Discord Developer PortalのBotセクションでトークンを再生成できます。
  1. これらの変更を行った後、Node-REDフローを再デプロイします。

これらの手順を試した後も問題が続く場合は、Discord API documentationを確認するか、より具体的なトラブルシューティングについてDiscord developer communityでヘルプを求めることを検討してください。

技術サポート & 製品ディスカッション

弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しています。

Loading Comments...