EasyBot

EASYBOT GUIDE

Discord Botがメッセージ本文を取得できない時のIntent設定

Botがメッセージ内容を読めない時に、Message Content Intent、コード設定、チャンネル権限を確認する方法を解説します。

Discord Botがメッセージイベントを受信していても本文が空になる場合、Message Content Intentが無効、コードでIntentを渡していない、または対象メッセージの条件が原因のことがあります。

Portal側の設定

Message Content Intentは特権Intentです。Developer PortalのBot設定で必要性を確認し、該当Applicationで有効にします。Botの利用規模によって申請要件がある場合はDiscordの案内に従います。

  • 正しいApplicationを選択する
  • Message Content Intentの状態を確認する
  • 保存後にGatewayへ再接続する

コード側の指定

PythonやNode.jsのSDKでは、メッセージ本文を読むためのIntentをコードで設定する必要があります。SDKのバージョンに合った公式例を使い、不要なIntentは有効化しません。

  1. 使用ライブラリのバージョンを確認する
  2. コード側のIntent指定を見る
  3. Botを完全に再起動する

権限とイベント

Botにチャンネル閲覧やメッセージ履歴の権限がないと、対象メッセージを確認できません。Intentの問題とチャンネル権限を分けてテストします。

  • 対象チャンネルへの閲覧権限を確認する
  • メッセージ作成と編集イベントを区別する
  • テストサーバーで最小構成を再現する

データの取り扱い

メッセージ本文を読む機能を使う場合は、必要性と保存範囲を利用者へ説明します。Botのログへ会話内容や個人情報を無制限に保存しないようにします。

  • 必要なコマンドだけ処理する
  • 本文を保存する場合は目的と期間を定める
  • 秘密情報や個人情報をログから除く