Discord

Discord翻訳botのためのメッセージコンテンツ特権インテントの申請

自作したDiscordの翻訳botのプロフィールに招待リンクを載せたらえらいことになりました。なんですか99サーバーって。

We noticed that you are the owner of a Discord bot, Piyo translator, that has been added to 75 or more servers. Congratulations on your success!

As part of Discord’s ongoing effort to keep our platform safe and to empower developers with exciting new features, we’re starting a Verified Bots and Developers program:

7月のある日、Discord公式からダイレクトメッセージが届きましたが、それを放置してしまいました。気づいたときには、私のbotが追加されたサーバーの数が上限に達しており、新しいサーバーにボットを追加することができなくなっていました。誰が使ってくれているのかは分かりませんが、ありがとうございます。

要約すると

  • Discordボットが75以上のサーバーに追加されたことを祝福
  • Discordのプラットフォームの安全性維持と開発者支援の一環として「Verified Bots and Developers」プログラムの開始を通知

そういうことで、本来は Verified Bots and Developers – Discordでbotを公式に認証させる(Verified Bot Statusを取得する)という流れになりますが、今回はハードルを下げて特権インテントの申請を行いました。

はい、なのでまず特権インテントについてちゃんと調べてみよう。

Discordの特権インテント:ボットの可能性を広げる

Discord botは、私たちのコミュニティ体験を豊かにするための重要なツールです。特に、特権インテントを活用することで、botの機能は大きく拡張されます。botの作成方法を検索していると、しばしば「特権インテントのチェックは全部入れておけば良い」というような簡単な説明に出くわします。しかし、実際にはそれぞれの特権インテントが何をするのか、なぜ重要なのかを正確に理解することが非常に重要です。

以下、Discordの特権インテントである「プレゼンスインテント」、「サーバーメンバーインテント(ギルドメンバーインテント)」、そして「メッセージコンテントインテント」について掘り下げていきます。

プレゼンスインテント(Presence Intent)

このインテントは、ユーザーのオンライン状態や現在のアクティビティをボットが取得できるようにします。

  • オンライン状態の監視: ユーザーがオンライン、オフライン、退席中などのステータスを確認できます。
  • アクティビティの追跡: ユーザーが何をしているか(例:ゲームをプレイしている)を知ることができます。
  • カスタムステータスの取得: ユーザーの設定したカスタムステータスを取得します。
  • イベントベースのアクション: ユーザーのステータス変更に応じたアクションを実行します。

サーバーメンバーインテント(Server Members Intent)

このインテントにより、ボットはサーバー内のメンバーに関する詳細情報にアクセスできます。

  • メンバーリストの取得: サーバーに存在する全メンバーのリストが取得できます。
  • ユーザー情報の取得: ユーザー名や役職など、個々のメンバーに関する情報にアクセスできます。
  • 参加・退出イベントの検知: 新しいメンバーの参加や既存メンバーの退出を検知します。
  • メンバーの検索とフィルタリング: 特定の条件に基づいてユーザーを検索し、フィルタリングできます。

メッセージコンテントインテント(Message Content Intent)

このインテントを有効にすると、ボットはユーザーが送信したメッセージの内容を読み取り、反応することができます。

  • メッセージの読み取り: ユーザーが送信したメッセージの内容を読み取ります。
  • 自動反応: 特定のキーワードに基づいて自動的に反応します。
  • コマンドの実行: ユーザーからのコマンドを受け取り、処理します。
  • 自動翻訳: メッセージを他言語に翻訳する機能を提供します。

私の翻訳botはテキストのみを扱うためメッセージコンテントインテントのみ申請しました。しかし、結局「Verified Bots and Developers」の申請画面で再度特権インテントの項目に直面したため、先にインテントの申請することにはそれほど意味がなかったのかもしれません。

特権インテント申請の事前準備

  1. botの目的と機能の明確化:
    • botがどのような目的で、どのような機能を提供するのかを明確にしておきましょう。特に、どの特権インテントが必要で、それらをどのように利用するかを具体的に説明できるようにします。
  2. プライバシーポリシーと利用規約の準備:
    • ユーザーデータの取り扱いやプライバシーに関するポリシーを整備します。これらの文書は、ユーザーのデータをどのように使用し、保護するかを明確に示すものです。これらは申請時に提出する必要があります。
  3. セキュリティとデータ保護の対策:
    • ユーザーデータのセキュリティを確保するための対策を講じておきます。データ漏洩や不正アクセスを防ぐための技術的な対策を含みます。なお、この項目は「Verified Bots and Developers」で説明を求められます。
  4. Discordのガイドラインとポリシーの確認:
    • Discordの利用規約やコミュニティガイドラインを再確認し、botがこれらの規範に適合していることを確認します。
  5. テストと検証:
    • 特権インテントを使用する前に、botの動作を十分にテストし、期待通りに機能することを確認します。
  6. 必要な書類や情報の準備:
    • Discordに提出する可能性のある書類や情報を準備します。身分証明書として運転免許証を提出しましたが、これはインテントではなくbotの認証に必要な項目だったかもしれません

私のボットは翻訳以外の機能は持っていないため、「リアクションされたテキストを読み込んで翻訳し、結果を書き込む」という単純な機能の説明だけで申請は問題なく進みました。機能が多岐にわたるボットの場合、スクリーンショットや動画など、Discordから求められる資料が増える可能性があります。また、各特権インテントについては個別に詳細な説明が必要になります。

サポートとのメールのやりとりは、一日に一通です。10時過ぎくらいに返事をいただき、わたしが深夜に返信をしていました。

プライバシーポリシーはurlを書きました。

コマンドのリストをよこせ

Thanks for reaching out and applying for privileged intents! Everything is looking good so far.

I had an additional request to continue with the process. Can you please share some screenshots showing your bot’s complete list of commands, so we know how it is used?

Thanks in advance!

googletransを使用して翻訳後に送信するコマンドを実装していたので、その機能のスクリーンショットだけを送信しました。ただし、このコマンドはボットのプロフィールやウェブサイトには記載していないため、実際にはあまり使われていないと思います。

Thanks so much for your patience, and for the screenshot!

I am happy to announce that your bot’s been approved for the Message Content Privileged Intent. Congratulations!

If you have any follow-up questions on the verification process or the API in general, please join our Discord Developers server!: https://discord.gg/discord-developers

And, if you need additional support, please don’t hesitate to reach out to our support team at any time. You can contact them here: https://dis.gd/contact

この質問は、コマンドを実装してあれば何でもよさそうです。そして実際にはグローバルコマンドである必要もないのかもしれません。

はい、この方法でメッセージコンテントの特権インテントを取得することができました。サポートへの返答が遅れたため、実質的には三日から四日かかりましたが、迅速に対応していれば、おそらく二日程度で完了していたでしょう。

特権インテントの申請画面を確認したところ、メッセージコンテントがグレーアウト表示されており、無事に申請が完了したことが確認できました。

次のステップとして「Verified Bots and Developers」プログラムに進み、認証を得ることを目指します。このプログラムに参加することにより、ボットの信頼性は確実に向上し、Discordコミュニティ内での影響力も拡大することが期待できます。

DeepLの無料枠からはみ出たらちょっとやり方を考えます。haha

Tagged , , , ,

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です