Discordの特権インテント:プレゼンス、メンバー、メッセージ内容
特権インテントとは、機微なデータを露出する三つのゲートウェイのインテント、つまりプレゼンスの更新、サーバーのメンバー一覧、メッセージの内容のことです。 ボットは、それぞれをDeveloper Portalでオンにしなければならず、100サーバーを超えて成長すると、それらを使い続けるには、Discordによる認証と承認も必要です。
三つのインテント
- プレゼンス:メンバーがオンライン、離席中、オフラインのどれか、さらに活動の状態。
- サーバーメンバー:メンバーの参加と退出のイベント、そして完全なメンバー一覧。ようこそメッセージ、認証、自動ロールに必要です。
- メッセージ内容:メッセージの実際の本文、埋め込み、添付ファイル。接頭辞のコマンドを読むため、またテキストを確認するあらゆるもののために必要です。
メッセージ内容がなくても、ボットは自分に言及したメッセージ、ダイレクトメッセージ、自分自身のメッセージ、そしてスラッシュコマンドのようなインタラクションを受け取ります。だから最近のボットは、スラッシュコマンドに頼るのです。
承認の仕組み
100サーバー未満のボットなら、Developer Portalのボットのページにあるスイッチをオンにするだけです。ボットが100サーバーに達すると、Discordはそのボットの認証を求め、特権インテントには、理由を明示した承認が必要になります。それがなければ、ボットはそれらを失います。Discordは個別に判断するので、そのデータを必要とする機能を明確に説明すると助けになります。
ボットが、オンにしていない特権インテントを求めて接続してくると、Discordはエラー4014で接続を閉じます。これは、設定の直後にボットがオフラインになる、よくある原因です。4014の解説をご覧ください。
サーバーのオーナーが気にする理由
これらのインテントは、ボットがメンバーのデータに触れる部分です。メッセージ内容は、考える価値があるものです。メッセージを読むボットは、スパムやリンクをフィルターできますが、アクセスできる場所で言われたことのすべても見えます。非公開のエリアでボットのView Channelを拒否すれば、それを制限できます。
信頼性にも影響します。承認された特権インテントを失ったボットは、知らないうちに、新しいメンバーを迎えるのやルールを守らせるのを止めてしまうことがあります。
特権インテントとNoxyr
自分のアプリケーションを使うNoxyrのカスタムボットでは、設定に、Developer Portalでサーバーメンバーのインテントとメッセージ内容のインテントをオンにすることが必要です。それらに依存するNoxyrの機能には、ようこそメッセージ、認証、アンチスパムが含まれます。特権ゲートウェイインテントの完全なガイドを読み、より広い考え方はゲートウェイインテントでご覧ください。
ボットを入れる前に確認する
どの特権インテントをボットが使い、何のためかを尋ねてください。音楽ボットがプレゼンスのデータを必要とすることはほとんどなく、投票のボットがすべてのメッセージを読む必要もほとんどありません。答えが曖昧なら、別のボットを選んでください。
よくある質問
どのインテントが特権ですか?
プレゼンス、サーバーメンバー、メッセージ内容です。
なぜボットがエラー4014で切断されるのですか?
Developer Portalでオンにしていない特権インテントを求めたからです。オンにして、ボットを再起動してください。
Noxyrのカスタムボットには、どのインテントが必要ですか?
自分のアプリケーションで、サーバーメンバーのインテントとメッセージ内容のインテントをオンにしなければなりません。