Discord APIのメッセージインテントについて
これは、Discordの記事を日本語に訳したものです。
Discordボットの人気とボット台数が増えるにつれて、ユーザーと開発者の安全と健康を保つことが重要になっています。つまり、他の成熟したプラットフォームのように、エコシステムの現在のニーズを反映させるために、ポリシーを更新する必要があるということです。
お知らせ
この記事を翻訳した時点では2022年4月からインテント化となっていましたが、2022/04/08時点で2022年8月からに変更されました。
アップデート: メッセージコンテンツは特権インテントになります
2022年8月、認証されたDiscordボットや、アプリを構築・管理する開発者にとって、メッセージコンテンツにアクセスすることは、presence と guild member のように、特権インテントとなります。
この変更は、100以上のサーバーに追加されている認証済ボットのみに影響します、認証していないボットや、ボットのサーバーへの追加数が100サーバー未満の場合は全く影響しません。
移行期間は、2021年の秋からとなります。 開発者は、この新しい要件を反映させるために、更新を始める必要があります。
移行期間中 (とその後)、 開発者は他のインテントと同じようにメッセージインテントを申請することができます: デベロッパーポータルを通じて、 検証中(開発中)又は、検証後にチケットを開いて、申請することができます。
この移行期間終了後に、 私たちは、特権インテントを取得していないボットからメッセージインテントを剥奪します。
過去1年間、 私たちはInteractions APIに、スラッシュコマンド、ボタン、セレクトメニューといった新しい機能を追加しました。この機能は、メッセージコンテンツへのアクセスを必要としていません。まだ、これらの新しい機能を使っていない開発者は、今後9ヶ月間の間に利用を開始することをお勧めします。
誰が影響を受けますか?
この変更は、100サーバー以上のサーバーに追加されているボットとアプリケーションに影響します。
開発者の皆様には、迅速なテストとイテレーションが求められます。そのため、認証されていないアプリやボットは、プレゼンスインテントやGuildメンバーインテントのデータと同様に、制限なくメッセージコンテンツにアクセスすることができます。
インテントを取得していないボットは何にアクセスできなくなりますか?
もしあなたのボットがメッセージインテントを取得していない場合、 ゲートウェイおよびAPIペイロードのメッセージオブジェクトの以下のフィールドは、データタイプに応じて、空の文字列または空の配列になります:
content
embeds
attachments
components
ボットはボット自身のメッセージは常にこれらの情報が取得できるようになります。
イベントは引き続き受信でき、同じAPIを呼び出すことができます。また、author
やtimestamp
など、メッセージに関するその他のデータも取得できます。簡単に言えば、誰かがメッセージを送ったときの情報は取得することができますが、何を言ったのか(メッセージの内容)は取得できません。
これらの制限は、ボタンなどのインタラクションペイロードといったメッセージオブジェクトには影響しません。
なぜDiscordはこの更新をするのですか?
Discordボットの人気と数が増えるにつれ、 ユーザーと開発者の安全と健康を保つことが重要になっています。 当社の既存のポリシーでは、開発者はボットの機能を提供するために必要な情報にのみアクセスし、開発者の認証情報とユーザーデータを保護することを義務付けています。
より機密性の高いデータの場合、私たちは、その情報を保護し、責任を持ってアクセスできるようにするためのさらなる措置を講じました。 これはプライバシーを重視するDiscordユーザーにとっても、開発者にとっても良いことです。開発者は、必要のないデータへのアクセスやセキュリティの制限を気にすることなく、優れたユーザー体験の実現に力を注ぐことができます。
プレゼンスやGuildメンバーの情報は、すでに審査の上、必要性に応じて付与されていますが、メッセージコンテンツも同様の審査・認証の枠組みに従うべきだと考えています。メッセージの内容は、特定のボットの機能の中心であることを知っているので、適切な代替品を作成し、アクセスを許可するための準備に時間をかけました。
新しいスラッシュコマンドのオプションタイプ、より優れたモデレーションコントロール、そして新しいタイプのインタラクションなど、ボットの未来としてインタラクションへの投資を続けています。
移行にはどれくらい時間がかかりますか?
変更には時間がかかることは承知しています。そのため、新たな変化にスムーズに対応できるよう、9ヵ月間の長い移行期間を設けました。この移行期間は2022年8月に終了しますが、このインテントに承認を得る必要があると考えられる開発者は、今秋から申請を開始することができます。
また、開発者の皆様が質問できるようなバーチャルイベントをいくつか開催し、サポートを提供していきます。いつものように、Discord Developer server で最新情報を入手することができます。
新しいインテントはいつ申請できますか?
ほとんどのボットやアプリは、スラッシュコマンドやその他のインタラクションのような、ユーザーと関わる新しい方法に移行すると思われます。この意図の対象となるのは、ユニークな動作(インタラクションではできない動作)を行うボットのみであることに留意してください。
あなたのボットが、インタラクションでは再現できないようなユニークな機能を持っている場合は、2021年秋にこのインテントのための申請受付を開始した時点で、応募することができます。
インテントをリクエストし拒否された場合はどうなりますか?
移行期間が終了すると、メッセージインテントへのアクセスは、特権インテントが付与されていない限り、すべて取り消されます。
その名の通り、特別なインテントへのアクセスは特権です。すべての申請書に目を通し、場合によってはインテント申請が許可されなかった理由をフィードバックします。
認証されてないボットはどうなりますか?
認証されていないボットやアプリは、この変更による影響を受けず、特権インテントを要求することなく、ボット開発においてメッセージインテントを使用することができます。
モデレーションボットについてはどうなりますか?
多くのボットやアプリが、Discordユーザーが送信したメッセージを読み、管理し、その他の方法で管理するための特別な機能があることを知っています。このようなメッセージインテントのリクエストには、問題なく対応できると考えています。
あなたのボットが、インタラクションでは再現できないようなユニークな機能を持っている場合は、2021年秋にこのインテントのための申請受付を開始した時点で、応募することができます。
Discussion