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は有効化しません。
- 使用ライブラリのバージョンを確認する
- コード側のIntent指定を見る
- Botを完全に再起動する
権限とイベント
Botにチャンネル閲覧やメッセージ履歴の権限がないと、対象メッセージを確認できません。Intentの問題とチャンネル権限を分けてテストします。
- 対象チャンネルへの閲覧権限を確認する
- メッセージ作成と編集イベントを区別する
- テストサーバーで最小構成を再現する
データの取り扱い
メッセージ本文を読む機能を使う場合は、必要性と保存範囲を利用者へ説明します。Botのログへ会話内容や個人情報を無制限に保存しないようにします。
- 必要なコマンドだけ処理する
- 本文を保存する場合は目的と期間を定める
- 秘密情報や個人情報をログから除く