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

OpenClawでSlackワークスペースを接続するチュートリアル

· 13 分で読了

はじめに

Slack は企業チームで最も広く使われているコラボレーションツールの一つです。OpenClaw を Slack に接続することで、チームにいつでも利用可能な AI アシスタントを提供し、質問への回答、コンテンツの生成、日常タスクの処理を支援できます。本記事では、Slack App の作成から接続完了までの全工程を詳しくご説明します。

前提条件

  • OpenClaw がインストール済みで正常に稼働していること
  • Slack ワークスペースの管理者権限を持っていること
  • ワークスペースがカスタムアプリのインストールを許可していること

接続方式の選択

OpenClaw は Slack への接続に2つの方式をサポートしています。

方式 説明 適用シーン
Socket Mode WebSocket 経由の接続、パブリック IP 不要 ローカルデプロイ、イントラネット環境
Event Subscriptions HTTP Webhook 経由でイベントを受信 パブリックサーバー、本番環境

初めての方には Socket Mode をお勧めします。設定が簡単で、パブリック IP やドメイン名が不要です。

ステップ1:Slack App の作成

1.1 Slack API プラットフォームにアクセス

Slack API を開き、Create New App をクリックします。

1.2 作成方法の選択

From scratch(ゼロから作成)を選択します。

  1. アプリ名を入力(例:「OpenClaw Assistant」)
  2. インストールするワークスペースを選択
  3. Create App をクリック

1.3 基本情報の設定

Basic Information ページで:

  • アプリアイコンをアップロード
  • アプリの説明を入力
  • Signing Secret をメモしてください(後の設定で必要です)

ステップ2:権限とイベントの設定

2.1 Bot Token Scopes の設定

左側メニューで OAuth & Permissions をクリックし、Bot Token Scopes までスクロールして以下の権限を追加します。

必要な Bot Token Scopes:
├── app_mentions:read    - @メンションメッセージの読み取り
├── channels:history     - パブリックチャンネルのメッセージ履歴読み取り
├── channels:read        - パブリックチャンネル情報の表示
├── chat:write           - メッセージの送信
├── groups:history       - プライベートチャンネルのメッセージ履歴読み取り
├── groups:read          - プライベートチャンネル情報の表示
├── im:history           - DM 履歴の読み取り
├── im:read              - DM 情報の表示
├── im:write             - DM の送信
├── mpim:history         - グループ DM 履歴の読み取り
├── reactions:write      - リアクションの追加
├── users:read           - ユーザー情報の表示
└── files:read           - ファイルの読み取り(任意、アップロードファイル処理用)

2.2 Event Subscriptions の設定

左側メニューで Event Subscriptions をクリックし、Enable Events を有効にします。

Socket Mode の使用(推奨)

Socket Mode を選択する場合、Request URL の入力は不要です。左側メニューで Socket Mode をクリックし、有効にします。

  1. Enable Socket Mode をクリック
  2. App-Level Token に名前を付ける(例:「openclaw-socket」)
  3. scope を追加:connections:write
  4. Generate をクリックし、生成された Token を保存(xapp- で始まるもの)

Event Subscriptions HTTP 方式の使用

HTTP 方式を選択する場合、まず OpenClaw を起動してパブリックアクセスが可能であることを確認し、Request URL に以下を入力します。

https://your-domain.com/webhook/slack/events

2.3 Bot Events のサブスクリプション

Event Subscriptions ページの Subscribe to bot events セクションで、以下のイベントを追加します。

イベント 説明
app_mention 誰かが @Bot した時にトリガー
message.channels パブリックチャンネルに新しいメッセージ
message.groups プライベートチャンネルに新しいメッセージ
message.im DM に新しいメッセージ
message.mpim グループ DM に新しいメッセージ

Save Changes をクリックして保存します。

ステップ3:アプリをワークスペースにインストール

  1. OAuth & Permissions ページに戻る
  2. Install to Workspace をクリック
  3. 権限を確認し、Allow をクリック
  4. インストール完了後、Bot User OAuth Token をコピー(xoxb- で始まるもの)

ステップ4:OpenClaw の設定

4.1 Socket Mode 設定

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

{
  channels: {
    slack: {
      enabled: true,
      // Bot User OAuth Token(xoxb- で始まるもの)
      botToken: "xoxb-1234567890-1234567890123-AbCdEfGhIjKlMnOpQrStUv",
      // App-Level Token(xapp- で始まるもの、Socket Mode で必須)
      appToken: "xapp-1-A1234567890-1234567890123-abcdef1234567890abcdef",
      // Signing Secret(Basic Information ページから取得)
      signingSecret: "abc123def456ghi789",

      // 接続モード
      mode: "socket",  // "socket" または "http"

      // トリガー設定
      trigger: {
        // @Bot が必要かどうか
        mentionRequired: true,
        // DM に応答するか(@ 不要)
        dmEnabled: true,
        // カスタムトリガーキーワード(任意)
        keywords: ["ask", "問"]
      }
    }
  }
}

4.2 HTTP モード設定

HTTP モードを使用する場合:

{
  channels: {
    slack: {
      enabled: true,
      botToken: "xoxb-xxxx",
      signingSecret: "your-signing-secret",
      mode: "http",

      // HTTP モードでの Webhook パス
      webhookPath: "/webhook/slack/events"
    }
  }
}

4.3 環境変数で設定

export SLACK_BOT_TOKEN="xoxb-1234567890-xxxxx"
export SLACK_APP_TOKEN="xapp-1-A1234567890-xxxxx"
export SLACK_SIGNING_SECRET="abc123def456"

4.4 再起動と検証

openclaw restart

# Slack チャンネルの接続ログを確認
openclaw logs -f --component channel:slack

接続成功時のログ:

[INFO] [channel:slack] Socket Mode 连接已建立
[INFO] [channel:slack] Bot 已登录为 @OpenClaw Assistant
[INFO] [channel:slack] 监听工作区: Your Workspace

ステップ5:Slack での使用

Bot をチャンネルに招待

Bot はインストール後、デフォルトではどのチャンネルにも参加していません。手動で招待する必要があります。

  1. 対象のチャンネルに移動
  2. /invite @OpenClaw Assistant と入力
  3. または、チャンネル設定 → インテグレーション → アプリの追加

インタラクション方法

# チャンネルで @Bot して質問
@OpenClaw Assistant Pythonのソートアルゴリズムを書いてください

# DM で直接対話(@ 不要)
こんにちは、この英文を翻訳してください

# スレッドで会話を継続
(Bot の返信のスレッドにメッセージを送信するだけでコンテキスト付きの会話を続けられます)

スレッド返信設定

Slack のスレッド(Thread)は会話を管理するのに適した方法です。Bot の返信動作を設定できます。

{
  channels: {
    slack: {
      reply: {
        // スレッドで返信するかどうか(チャンネルの荒れ防止)
        threadReply: true,
        // スレッド返信時にチャンネルにも表示するかどうか
        broadcastReply: false,
        // 処理中に「入力中」ステータスを表示
        showTyping: true,
        // 送信前に「考え中」の絵文字を追加
        thinkingEmoji: "thinking_face",
        // 返信完了後に確認の絵文字を追加
        doneEmoji: "white_check_mark"
      }
    }
  }
}

チャンネルと権限制御

Bot が動作するチャンネルの制限

{
  channels: {
    slack: {
      // 指定したチャンネルでのみ応答
      allowedChannels: ["C01234ABCDE", "C05678FGHIJ"],
      // またはチャンネル名で指定
      allowedChannelNames: ["ai-assistant", "bot-testing"],
      // 無視するチャンネル
      ignoredChannels: ["C09999XXXXX"]
    }
  }
}

Bot を使用できるユーザーの制限

{
  channels: {
    slack: {
      // 許可するユーザー ID リスト(空配列は全員許可)
      allowedUsers: [],
      // 管理者ユーザー(管理コマンドを実行可能)
      adminUsers: ["U01234ADMIN"]
    }
  }
}

ワークスペースの権限承認

エンタープライズレベルの Slack ワークスペースでは、アプリのインストールに管理者の承認が必要な場合があります。

  1. ワークスペース管理者がアプリ管理ページにアクセス
  2. 承認待ちリストから OpenClaw Assistant を見つける
  3. 権限範囲を確認後、承認をクリック
  4. 承認後にアプリが正常に機能します

トラブルシューティング

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

# 接続状態を確認
openclaw logs --level error --component channel:slack

# よくある原因:
# 1. Bot がチャンネルに招待されていない
# 2. Message Content イベントが未サブスクリプション
# 3. Token が不正または期限切れ

Socket Mode 接続失敗

# App-Level Token が正しいか確認
# Slack API プラットフォームで Socket Mode が有効か確認
# ネットワーク接続を確認(Socket Mode は wss://wss-primary.slack.com へのアクセスが必要)

HTTP モードの検証失敗

# Signing Secret が正しいか確認
# Request URL がパブリックアクセス可能か確認
# OpenClaw が稼働中でポートが開放されているか確認

まとめ

OpenClaw を Slack に接続する主要な手順:

  1. Slack API プラットフォームでアプリを作成し権限を設定
  2. Socket Mode または HTTP モードを選択
  3. Bot Token、App Token、Signing Secret を取得
  4. OpenClaw 設定ファイルに認証情報を入力
  5. サービスを再起動し、Bot を対象チャンネルに招待

Socket Mode はすばやく始めたい場合やイントラネットデプロイに適しており、HTTP モードはパブリックアドレスを持つ本番環境に適しています。

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