ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
チャンネル連携

OpenClawでDiscordボットを接続する完全チュートリアル

· 13 分で読了

はじめに

Discord は世界で最も人気のあるコミュニティコミュニケーションプラットフォームの一つです。OpenClaw を Discord に接続することで、サーバー内にインテリジェントな AI アシスタントをデプロイし、コミュニティメンバーに即座にサポートを提供できます。本記事では、Discord Bot の作成から OpenClaw への接続まで、ゼロから完全な手順をご説明します。

前提条件

開始する前に、以下を確認してください。

  • OpenClaw がインストール済みで正常に稼働中(openclaw up
  • Discord アカウントを所有していること
  • 対象 Discord サーバーの管理者権限を持っていること

ステップ1:Discord アプリケーションと Bot の作成

1.1 開発者ポータルにアクセス

Discord Developer Portal にアクセスし、Discord アカウントでログインします。

1.2 新しいアプリケーションを作成

  1. 右上の New Application ボタンをクリック
  2. アプリケーション名を入力(例:「OpenClaw Assistant」)
  3. 開発者サービス利用規約に同意
  4. Create をクリック

1.3 Bot を作成

  1. 左側メニューで Bot をクリック
  2. Add Bot をクリックし、作成を確認
  3. Bot 設定ページで:
    • Bot のアバターとユーザー名を設定
    • Reset Token をクリックして Bot Token を取得
    • Token を安全に保存してください(後の設定で必要です)
注意:Bot Token は機密情報です。漏洩させたり、公開リポジトリにコミットしたりしないでください。
万が一漏洩した場合は、開発者ポータルですぐに Token をリセットしてください。

1.4 Privileged Intents の設定

Bot 設定ページの下部で、以下の Privileged Gateway Intents を有効にする必要があります。

Intent 説明 必須かどうか
Presence Intent メンバーのオンライン状態を検出 任意
Server Members Intent メンバーリストの取得 任意
Message Content Intent メッセージ内容の読み取り 必須

Message Content Intent は必ず有効にしてください。有効にしないと、Bot はユーザーが送信したメッセージの内容を読み取ることができません。

ステップ2:Bot をサーバーに招待

2.1 招待リンクの生成

左側メニューで OAuth2URL Generator をクリックします。

  1. Scopesbotapplications.commands にチェック
  2. Bot Permissions で以下の権限にチェック:
必要な権限リスト:
├── Send Messages        - メッセージの送信
├── Send Messages in Threads - スレッドでのメッセージ送信
├── Embed Links          - リンクの埋め込み
├── Attach Files         - ファイルの添付
├── Read Message History - メッセージ履歴の読み取り
├── Use Slash Commands   - スラッシュコマンドの使用
├── Add Reactions        - リアクションの追加
└── Manage Messages      - メッセージの管理(任意、自身のメッセージ撤回用)
  1. 生成された URL をコピー

2.2 サーバーに招待

  1. ブラウザで前のステップでコピーした URL を開く
  2. Bot を追加するサーバーを選択
  3. 権限を確認し、Authorize をクリック
  4. CAPTCHA 認証を完了

招待が成功すると、Bot がサーバーのメンバーリストに表示されます(OpenClaw にまだ接続されていないため、オフライン状態で表示されます)。

ステップ3:OpenClaw の設定

3.1 設定ファイルで設定

~/.config/openclaw/openclaw.json5 を編集します。

{
  channels: {
    discord: {
      enabled: true,
      // 開発者ポータルから取得した Bot Token
      botToken: "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      // 開発者ポータルの OAuth2 ページから取得
      clientId: "123456789012345678",

      // トリガー方式の設定
      trigger: {
        // @Bot が必要かどうか(false の場合すべてのメッセージに返信)
        mentionRequired: true,
        // カスタムトリガープレフィックス(任意)
        prefix: "!ask",
        // DM に応答するかどうか
        dmEnabled: true
      },

      // 返信設定
      reply: {
        // Embed 形式で返信するかどうか
        useEmbed: true,
        // Embed の色(16進数)
        embedColor: "#5865F2",
        // スレッドでの自動フォロー返信
        threadReply: true,
        // 長いメッセージの自動分割文字数
        maxLength: 2000
      }
    }
  }
}

3.2 環境変数で設定

export DISCORD_BOT_TOKEN="MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXX"
export DISCORD_CLIENT_ID="123456789012345678"

3.3 サービスの再起動

設定完了後、OpenClaw を再起動します。

openclaw restart

ログで接続状態を確認します。

openclaw logs -f --component channel:discord

接続が成功すると、ログに以下が表示されます。

[INFO] [channel:discord] Bot 已登录为 OpenClaw Assistant#1234
[INFO] [channel:discord] 已连接到 3 个服务器
[INFO] [channel:discord] 斜杠命令已注册

ステップ4:スラッシュコマンドの設定

OpenClaw は Discord のスラッシュコマンド(Slash Commands)の登録をサポートしており、ユーザーが / で特定の機能をトリガーできます。

デフォルトのスラッシュコマンド

接続が成功すると、OpenClaw は自動的に以下のスラッシュコマンドを登録します。

コマンド 説明
/ask <質問> AI に質問する
/model <モデル名> 現在使用中の AI モデルを切り替え
/reset 会話コンテキストをリセット
/help ヘルプ情報を表示

カスタムスラッシュコマンド

設定ファイルにカスタムコマンドを追加できます。

{
  channels: {
    discord: {
      // ...その他の設定
      slashCommands: [
        {
          name: "translate",
          description: "翻訳文本",
          options: [
            {
              name: "text",
              description: "翻訳するテキスト",
              type: "STRING",
              required: true
            },
            {
              name: "language",
              description: "ターゲット言語",
              type: "STRING",
              required: false,
              choices: [
                { name: "中文", value: "zh" },
                { name: "English", value: "en" },
                { name: "日本語", value: "ja" }
              ]
            }
          ],
          // 関連するスキルまたはシステムプロンプト
          skill: "translate"
        }
      ]
    }
  }
}

マルチサーバー設定

Bot が複数の Discord サーバーに招待されている場合、サーバーごとに異なる動作を設定できます。

{
  channels: {
    discord: {
      enabled: true,
      botToken: "your-bot-token",
      clientId: "your-client-id",

      // サーバーレベルの設定
      guilds: {
        // サーバー ID: 設定
        "111111111111111111": {
          model: "claude",
          systemPrompt: "あなたは技術サポートアシスタントです",
          allowedChannels: ["general", "bot-chat"],
          trigger: { mentionRequired: false }
        },
        "222222222222222222": {
          model: "gpt-4o",
          systemPrompt: "あなたはフレンドリーなチャットパートナーです",
          allowedChannels: ["ai-chat"],
          trigger: { mentionRequired: true }
        }
      },

      // guilds に設定されていないサーバーはデフォルト設定を使用
      defaultGuild: {
        model: "claude",
        trigger: { mentionRequired: true }
      }
    }
  }
}

サーバー ID の取得方法:Discord で開発者モードを有効にし(設定 → 詳細 → 開発者モード)、サーバーアイコンを右クリック → サーバー ID をコピー。

Embed フォーマット

OpenClaw は返信を Discord Embed としてフォーマットすることをサポートしており、メッセージをより美しく表示できます。

{
  channels: {
    discord: {
      reply: {
        useEmbed: true,
        embedColor: "#5865F2",
        embedFooter: "Powered by OpenClaw",
        // コードブロックの自動シンタックスハイライト
        codeHighlight: true,
        // 長い返信を複数の Embed に自動分割
        splitEmbed: true
      }
    }
  }
}

Embed の効果には以下が含まれます。

  • カラーサイドバーで AI の返信を識別
  • コードブロックのシンタックスハイライト対応
  • フッターにモデル名とトークン消費情報を表示
  • 超長コンテンツの自動ページネーション表示

トラブルシューティング

Bot がオフライン表示

# Token が正しいか確認
openclaw config get channels.discord.botToken

# ログのエラーメッセージを確認
openclaw logs --level error --component channel:discord

よくある原因:Token が不正、Token の有効期限切れ、ネットワーク接続の問題。

Bot がメッセージに応答しない

# Message Content Intent が有効になっているか確認
# 開発者ポータル → Bot → Privileged Gateway Intents で確認

権限不足エラー

Bot が対象チャンネルでメッセージ送信の権限を持っていることを確認してください。Discord のサーバー設定で Bot ロールの権限設定を確認できます。

まとめ

Discord 連携は OpenClaw で最もよく使用されるチャンネルの一つです。主要な手順の振り返り:

  1. Discord 開発者ポータルでアプリケーションと Bot を作成
  2. Message Content Intent を有効化
  3. 招待リンクを生成してサーバーに招待
  4. OpenClaw 設定ファイルに Token を入力
  5. サービスを再起動して接続を確認

デプロイが完了すると、Discord コミュニティに強力な AI アシスタントが加わります。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応