Discord Bot Portal JP
逆引き 読了目安 約9分 更新 2026.07.03

discord.py 機能別逆引きガイド

discord.py で実装したいことから、使う機能、考え方、参照すべき公式ドキュメントや本サイトのトラブルシューティング記事を引けるように整理します。

この記事で分かること

  • やりたいことから discord.py の機能を探す方法
  • Interaction、メッセージ、サーバー操作の分け方
  • 権限・Intent・cache で詰まりやすい箇所
  • 公式ドキュメントと本サイト記事の参照先

このページは、discord.py で「何を実装したいか」から参照先を探すための逆引きです。使う機能と詰まりやすい点を整理します。

最初に、discord.py の版、Intent、Portal、Bot のロール位置を把握します。基礎から進めたい場合は、discord.py による Discord Bot 開発を先に読んでください。

Interaction と操作UI

スラッシュコマンド、ボタン、セレクトメニュー、モーダルは、利用者の操作に応答する機能です。discord.py では app_commandsdiscord.ui、callback、応答、timeout を分けて見ます。

やりたいこと使う機能・考え方参照先
スラッシュコマンドを作りたいapp_commands、コマンド登録、引数、権限discord.py app_commands、Discord Application Commands、Interaction 逆引き
ボタンを押したら処理したいdiscord.ui.View、Button、callback、custom_iddiscord.py interactions API、Discord Components、Interaction 逆引き
選択・入力を受けたいSelect、Modal、入力値の検証、操作できるユーザーの限定discord.py UI components、Discord Components & Modals、データとセキュリティ

Interaction は、押した人、押した場所、応答の公開範囲を決めてから実装します。管理用UIを誰でも押せる状態にせず、入力値を保存や外部送信の前に検証します。

メッセージとチャンネル

メッセージ送信や編集は、通知、メンション、権限、添付ファイル、Embed で事故が起きやすい領域です。

やりたいこと使う機能・考え方参照先
送信・Embed・添付を扱いたい送信先チャンネル、Allowed Mentions、Attach Files 権限Discord Message Resource、メッセージ逆引き
削除・編集したいManage Messages 権限、対象メッセージ、監査ログDiscord Permissions、メッセージ逆引き
リアクションを扱いたいreaction event、cache、raw event、emoji の比較discord.py events、メッセージ逆引き

⚠️ メンション文字列を外部入力からそのまま送ると、意図しない通知を発生させることがあります。Allowed Mentions や送信前の検証で通知範囲を制御します。

サーバー管理

ロール付与、チャンネル作成、メンバー管理は、Bot の権限とロール階層に強く影響されます。コードが正しくても、対象ロールや対象チャンネルに届かなければ失敗します。

やりたいこと使う機能・考え方参照先
ロールを付与・削除したいMember、Role、Manage Roles、ロール階層Discord Permissions、サーバー管理逆引き
チャンネルを作りたいGuild channel create、カテゴリ、権限上書きDiscord Channel Resource、サーバー管理逆引き
参加案内やBAN/Kickを扱いたいmember event、対象確認、理由、監査ログ、権限チェックDiscord Gateway/Guild Resource、discord.py トラブル

サーバー管理機能では、実行者、対象者、理由をログへ残します。利用者には短く、管理者には原因を追える情報を返します。

運用補助と外部連携

定期実行、外部API、DB、Webhook は、Discord API とは別の失敗要因を持ちます。timeout、再試行、重複実行、秘密情報の管理を先に決めます。

やりたいこと使う機能・考え方参照先
定期実行したいdiscord.ext.tasks、再起動時の再開、重複防止discord.py tasks extension、ホスティング逆引き
エラーを記録したいlogging、例外処理、利用者向け返信と管理ログの分離Python logging、エラー逆引き
DB・外部APIと連携したい非同期処理、timeout、APIキー管理、個人情報の最小化Python asyncio、データとセキュリティ

外部連携は「失敗したときにどう戻すか」まで決めます。初回応答、重い処理の逃がし方、二重送信を防ぐ設計も必要です。

確認ポイント

  • 必要な Intent と権限を説明できる
  • cache 前提で取れない情報は fetch や raw event を検討した
  • 秘密情報を環境変数で扱っている
  • 本番前にテストサーバーで成功時と失敗時を試した

一次情報(公式ドキュメント)