Skip to content

Latest commit

 

History

History
330 lines (227 loc) · 20.1 KB

File metadata and controls

330 lines (227 loc) · 20.1 KB

Privileged Gateway Intents 申請ガイド

この文書は、Discord Developer Portal の「インテントを要求」フォームへ入力するための、 Server_Bot の実装に即した回答例です。実際の公開状況、サポート窓口、プライバシーポリシー URL などを確認したうえで提出してください。

申請する Intent

Intent 申請 実装上の用途
Server Members Intent はい 新規参加者への自動ロール、ウェルカムメッセージ、ロール一括操作
Message Content Intent はい 画像専用チャンネル、カスタム絵文字制限、提案投票、自動公開、固定メッセージ、自動スレッド
Presence Intent いいえ ステータスやアクティビティーを取得・保存・表示していないため

Presence Intent を将来利用する場合は、実装、データの用途、保持方針を別途説明してから申請します。

フォーム回答例

コピー用回答シート

以下は、掲載画像の各入力欄へ上から順に入力する回答です。角括弧の補足はフォームへ貼り付けず、 コードブロック内だけをコピーしてください。選択欄は記載した選択肢を選びます。

1. アプリケーションの詳細

Server_Bot は、Discord サーバー管理者向けのサーバー運用支援 Bot です。スラッシュコマンドを中心に、チャンネル管理、問い合わせチケット、一時ボイスチャンネル、参加時の自動ロール、ウェルカムメッセージ、画像専用チャンネル、提案投票、アナウンスの自動公開、固定メッセージなどの機能を提供します。

Server Members Intent は、新規参加者を検知して、サーバー管理者が事前に設定したロールを付与し、ウェルカムメッセージを送信するために使用します。また、管理権限を持つユーザーがロール一括付与・解除コマンドを実行した場合に、処理対象となるサーバーメンバーを取得するために使用します。

Message Content Intent は、管理者が有効化した機能を動作させるために使用します。具体的には、画像専用チャンネルにおける画像添付または画像URLの判定、禁止されたカスタム絵文字の検出、提案投稿への投票リアクション付与、アナウンスの自動公開、固定メッセージの再投稿、自動スレッド名の生成を行います。

取得したデータは、Discord サーバー内で管理者が設定した機能を提供する目的にのみ使用します。メッセージ本文やメンバー情報を、広告、ユーザーのプロファイリング、機械学習モデルのトレーニング、第三者への販売には使用しません。Presence Intent は使用しません。

「お客様のプライバシーポリシーで、ユーザーデータを外部に売却されていますか?」

いいえ

2. Server Members Intent

「なぜ/どのようにこの Intent を使用しますか?」

Server Members Intent は、guildMemberAdd イベントを受信し、新しく参加したメンバーへ、サーバー管理者が事前に設定した自動ロールおよびデフォルトロールを付与するために使用します。また、管理者が設定したウェルカムメッセージを、指定されたチャンネルまたは参加者のDMへ送信するために使用します。

さらに、Manage Roles 権限を持つ管理者が /roleall コマンドを明示的に実行した場合に限り、そのサーバーのメンバーを取得して、指定ロールの一括付与または一括解除を行います。

永続保存する情報は、サーバーID、ロールID、チャンネルID、ウェルカムメッセージなど、管理者が設定したBotの運用設定です。取得したメンバー一覧やメンバープロフィールは永続保存せず、広告、プロファイリング、機械学習、第三者への販売には使用しません。

「使用例を示すスクリーンショットや動画へのリンク」

この欄には、文章ではなく、実際に撮影した動画または画像を閲覧できる URL が必要です。次の形式で、 URL 部分を自分の確認資料の共有リンクに置き換えて貼り付けてください。

Server Members Intent の使用例:
https://URLをここに入力

動画では、管理者が自動ロールを設定する操作、テストユーザーがサーバーへ参加する操作、Botが設定済みロールを付与する結果、ウェルカムメッセージを送信する結果を順に示しています。

「Discord外および第三者へユーザーデータを販売しますか?」

いいえ

3. Presence Intent

掲載されたフォームでは Presence Intent が選択されていますが、現在の Bot は Presence Intent を要求していません。 申請内容を現在の実装に合わせる場合は、申請対象の Intent 一覧で Presence Intent のチェックを外します。 チェックを外すと、このセクションへの回答は不要です。フォームの都合で説明欄が残る場合だけ、次を貼り付けます。

このアプリケーションは Presence Intent を要求せず、ユーザーのオンライン状態、カスタムステータス、アクティビティー情報を取得、保存、表示しません。

掲載画像にある Presence Intent の各設問

Presence Intent を実装してから申請する場合に限り、次の回答例を使用できます。[ ] の部分は、実際に公開・運用している 情報へ置き換えてください。存在しない URL や連絡先を記載してはいけません。

「アプリケーションの詳細」

Server_Bot は、Discord サーバー管理者向けのサーバー運用支援 Bot です。チャンネル管理、問い合わせチケット、一時ボイスチャンネル、ロール管理などを提供します。

Presence Intent は、サーバー内のメンバーがオンライン、退席中、取り込み中、オフラインのいずれであるかを判定し、サーバー管理者向けの在席状況表示機能を提供するためにのみ使用します。取得したプレゼンス情報は、広告、プロファイリング、第三者への販売、機械学習モデルのトレーニングには使用しません。

「公開のプライバシーポリシーで、ユーザーデータ使用について伝えていますか?」

Yes

この回答は、公開済みプライバシーポリシーにプレゼンスデータの取得目的、保存期間、削除方法が実際に記載されている 場合だけ選択します。まだ記載していない場合の正しい回答は No です。

「プライバシーポリシーはどこで閲覧できますか?」

プライバシーポリシーは、Botの公式WebサイトおよびDiscord Developer Portalに登録した公開URLから、ログイン不要で閲覧できます。

「プライバシーポリシーへのリンク」

[公開済みプライバシーポリシーのURL]

「なぜ Presence Intent が必要ですか?」

Presence Intent は、サーバー内のメンバーのオンライン状態を取得し、管理者向けの在席状況表示機能を提供するために必要です。オンライン、退席中、取り込み中、オフラインの状態変化をリアルタイムに反映します。プレゼンス情報はこの機能の提供以外には使用せず、広告、プロファイリング、第三者への販売、機械学習モデルのトレーニングには使用しません。

「使用例を示すスクリーンショットや動画へのリンク」

[Presence Intentを無効にした状態では機能せず、有効にすると在席状況が更新されることを示す、ログイン不要で閲覧可能な動画URL]

確認動画の作り方

現在の Server_Bot には Presence Intent を利用する機能がないため、現状の画面を録画しても申請根拠にはなりません。 Presence Intent をコードへ実装し、テストサーバーで動作確認できるようになってから撮影してください。

審査担当者が「どの操作に Presence Intent が必要で、取得したデータが画面上でどう使われるか」を短時間で確認できるよう、 1本の無編集または最小限の編集をした動画に、次の順番で収録します。目安は1~3分です。

  1. Botとテストサーバーを特定する
    • Discord Developer Portal のアプリケーション名を表示します。
    • Botを導入したテストサーバー名を表示します。
    • Application IDは表示して構いませんが、Bot Token、Client Secret、バックアップコードは絶対に映しません。
  2. Presence Intentの設定を示す
    • Developer Portalの「Bot」ページを開きます。
    • Privileged Gateway Intents にある Presence Intent の位置と設定状態を映します。
    • Token欄やReset Token操作は画面に入れないか、録画後に確実にぼかします。
  3. 機能を実行する
    • Discordのテストサーバーへ戻り、プレゼンスを利用するコマンドまたは管理画面を開きます。
    • テストユーザーのオンライン状態を「オンライン」から「退席中」などへ変更します。
    • Botの在席状況表示が、状態変更に合わせて更新されるところを映します。
  4. Intentが必要であることを示す
    • 可能であれば、Presence Intentを無効にしたテスト環境では状態が取得・更新されないことも示します。
    • その後、Intentを有効にしたテスト環境で正常に更新されることを示します。
    • 本番BotのIntentを撮影中に切り替えず、テスト用アプリケーションを使う方が安全です。
  5. データの扱いを補足する
    • 動画内のテキストまたは説明欄に「最新状態のみを処理し、Discord外へ保存しない」など、フォーム回答と同じ方針を書きます。
    • 実際に保存する場合は、保存場所、目的、保持期間、削除方法を正確に示します。

スクリーンショットだけで提出する場合

動画の方が一連の動作を証明しやすいですが、スクリーンショットを使う場合は、最低でも次の3枚を用意します。

  1. Developer Portalで対象アプリケーションとPresence Intentの設定が分かる画像。
  2. テストユーザーのオンライン状態が分かるDiscord画面。
  3. 同じユーザーの状態をBotの機能が反映していることが分かる結果画面。

各画像には 1. Intent設定2. ユーザーの状態変更3. Botの反映結果 のように番号と短い説明を付け、 1つの共有フォルダーへまとめます。画像だけではIntentが必要な理由を伝えにくい場合は動画へ切り替えます。

録画と共有の手順

  1. OBS Studio、Windowsの画面録画、macOSのスクリーンショットツールなどで画面を録画します。
  2. 録画を最初から最後まで見直し、Token、メールアドレス、DM、サーバー招待URL、個人情報が映っていないことを確認します。
  3. YouTubeの限定公開、Google Drive、OneDriveなどへアップロードします。
  4. 共有設定を「リンクを知っている全員が閲覧可能」にします。編集権限は付与しません。
  5. シークレットウィンドウまたはログアウトした別ブラウザーでURLを開き、ログイン申請やアクセス許可なしで再生できることを確認します。
  6. 動画を削除したりURLを変更したりせず、審査が完了するまで公開状態を維持します。
  7. フォームには共有ページではなく、該当動画または画像フォルダーを直接開けるURLを貼ります。

動画の説明欄テンプレート

Application: Server_Bot
Intent: Presence Intent

この動画では、次の内容を順に示しています。
1. Discord Developer Portal上の対象アプリケーションとPresence Intentの設定
2. テストユーザーのオンライン状態の変更
3. Server_Botの在席状況表示への反映

プレゼンスデータは、サーバー管理者向けの在席状況表示機能にのみ使用します。
[Discord外へ保存しません/保存する場合は保存目的と保持期間を記載]
プライバシーポリシー: [公開済みプライバシーポリシーURL]

フォームへ貼り付ける文章

Presence Intentの使用例動画:
[ログイン不要で閲覧できる動画URL]

動画の内容:
1. Developer Portal上のPresence Intent設定
2. テストユーザーのオンライン状態の変更
3. Botの在席状況表示への反映

動画はリンクを知っている全員がログインなしで閲覧できます。

提出前チェック

  • URLをシークレットウィンドウで開いて再生できる。
  • 動画または画像に、対象Botの名前、機能の操作、処理結果が含まれている。
  • Presence Intentがなければ機能が成立しないことを説明できている。
  • フォームの用途説明と、動画で示す機能が一致している。
  • Bot Token、Client Secret、個人のDM、メールアドレスなどが映っていない。
  • 動画や共有フォルダーに編集権限を付与していない。
  • URLを審査完了まで削除・非公開化しない。

「ユーザーはプレゼンスデータの追跡をオプトアウトできますか?」

現在の実装にはユーザー単位のオプトアウト機能がないため、実装を変更しない限り正しい選択は次です。

No

「ユーザーアクティビティーデータをDiscord外で保存しますか?」

Discord外のデータベースへ保存しない運用では、次を選択します。

No

「ユーザーアクティビティーデータを30日以内にわたって保存しますか?」

永続保存せず、Discordから受信した最新状態をメモリ上で一時的に扱うだけの場合は、次を選択します。

No

「ユーザーがデータ削除をリクエストする際の連絡方法」

データ削除の依頼は、[サポートサーバーの公開招待URL]または[問い合わせ用メールアドレス]から受け付けます。依頼者本人および対象データを確認したうえで、保存されている該当データを削除し、完了を依頼者へ通知します。

「保存中のデータを暗号化しますか?」

プレゼンスデータを永続保存しない場合は、設問の選択肢に Not applicable があればそれを選択します。Yes / No のみで、 Bot の設定データを暗号化されたストレージに保存している事実が確認できる場合だけ、次を選択します。

Yes

暗号化を実装・確認していない場合は No が正しい回答です。審査を通す目的で、実態と異なる Yes を選択してはいけません。

Presence Intent に関する選択欄がチェックを外した後も必須の場合は、次のとおり選択します。

質問 選択する回答
ユーザーはプレゼンスデータの収集をオプトアウトできますか? 該当なし/使用しない(選択肢がなければ「はい」)
プレゼンスデータをDiscord外で使用しますか? いいえ
プレゼンスデータを機械学習モデルのトレーニングに使用しますか? いいえ

4. Message Content Intent

Message Content Intent は、この Bot のメッセージ監視型機能に必要なため、申請対象の Intent 一覧で Message Content Intent にチェックを入れます

「ユーザーはメッセージコンテンツの収集をオプトアウトできますか?」

いいえ

現在の実装には、ユーザー単位でメッセージコンテンツの受信を除外する機能はありません。管理者は対象機能を サーバーまたはチャンネル単位で無効化できますが、これは個々のユーザーによるオプトアウトとは区別します。

「メッセージコンテンツデータをプラットフォーム外(Discord外)で使用しますか?」

いいえ

「メッセージコンテンツは機械学習モデルのトレーニングに使用されますか?」

いいえ

「なぜ/どのように Message Content Intent を使用しますか?」

Message Content Intent は、サーバー管理者が明示的に有効化したDiscordチャンネル内で、メッセージをリアルタイムにルールベース処理するために使用します。

具体的には、画像専用チャンネルで投稿に画像添付または画像URLが含まれているかの判定、使用禁止設定時のカスタム絵文字の検出、提案チャンネルへの投票リアクション付与、アナウンスチャンネルの投稿の自動公開、固定メッセージの再投稿、投稿内容を用いた自動スレッド名の生成に使用します。これらはメッセージ本文を取得できなければ正しく動作しません。

メッセージの処理はDiscord内のモデレーションおよびサーバー運用のために行います。通常の機能処理においてメッセージ本文をデータベースへ永続保存せず、Discord外のサービスへの送信、広告、ユーザープロファイリング、機械学習モデルのトレーニング、第三者への販売には使用しません。

「使用例を示すスクリーンショットや動画へのリンク」

URL 部分を、実際に撮影した確認資料の共有リンクへ置き換えます。

Message Content Intent の使用例:
https://URLをここに入力

動画では、管理者が /imageonly で画像専用チャンネルを有効化する操作、画像を含まない投稿が削除される結果、画像付き投稿が残る結果、/setsuggestion で設定した提案チャンネルの投稿へ投票リアクションが付与される結果を順に示しています。

5. 確認事項

フォーム最下部の確認事項は、リンク先の Developer Policy および Developer Terms を読み、現在の運用が 実際に準拠していることを確認した場合だけチェックを入れて送信します。

重要: スクリーンショット/動画欄の URL と、公開済みのプライバシーポリシー URL は、このリポジトリだけからは 確定できません。https://URLをここに入力 のまま提出せず、必ず本人が管理する公開 URL に置き換えてください。

提出前チェック

  • 回答が現在のコードと本番運用の両方に一致している。
  • Server Members Intent と Message Content Intent だけを申請している。
  • Presence Intent を選択していない。
  • 公開済みのプライバシーポリシーと利用規約の URL を Developer Portal に登録している。
  • 問い合わせ先とデータ削除依頼の方法を公開している。
  • スクリーンショットまたは動画に、設定操作と Bot の処理結果の両方が含まれている。
  • Bot Token、個人の DM、メールアドレスなどを確認資料から除いている。
  • 回答欄の「はい/いいえ」は、設問の日本語だけでなく原文の意味も確認して選択している。