OpenClaw

OpenClaw Twitch 頻道

即時通訊
簡單

透過 IRC 將 OpenClaw 連接至 Twitch 聊天室,讓您的 AI 助手能夠即時與觀眾互動。安裝 Twitch 外掛程式、設定具有聊天權限的 OAuth Token,您的機器人即可加入頻道、回應提及,並透過角色存取控制管理對話。

快速資訊
難度簡單
分類即時通訊
支援功能數2 / 6

Twitch 支援功能

文字訊息

支援

媒體與檔案

不支援

表情回應

不支援

討論串

不支援

語音訊息

不支援

群組聊天

支援

Twitch 前置條件

  • 一個用作機器人身份的 Twitch 帳號
  • 具有 chat:read 和 chat:write 權限的 OAuth Access Token
  • 來自 Twitch Developer Console 的 Client ID
  • 已安裝並正在執行的 OpenClaw Gateway
  • 透過 'openclaw plugins install @openclaw/twitch' 安裝的 Twitch 外掛程式

Twitch 快速設定

1

安裝 Twitch 外掛程式

執行 'openclaw plugins install @openclaw/twitch' 以新增 Twitch 支援。您也可以透過本機路徑安裝:'openclaw plugins install ./extensions/twitch'。

2

取得您的 OAuth Token 和 Client ID

前往 twitchtokengenerator.com,選擇 'Bot Token' 並授權 chat:read 和 chat:write 權限。複製 Access Token。另外,從 Twitch Developer Console(dev.twitch.tv/console)取得您的 Client ID。

3

設定並啟動

將 Twitch 頻道設定新增至 ~/.openclaw/openclaw.json,填入您的 username、accessToken、clientId 和目標頻道。使用 'openclaw start' 啟動 Gateway,然後在 Twitch 頻道中發送提及機器人的訊息以驗證。

Twitch 設定範例

config.json
{
  "channels": {
    "twitch": {
      "enabled": true,
      "username": "mybotname",
      "accessToken": "oauth:abc123...",
      "clientId": "your-client-id",
      "channel": "targetchannel",
      "allowFrom": ["123456789"]
    }
  }
}

Twitch 深入了解

架構概覽

OpenClaw 使用 IRC 協定連接至 Twitch 聊天室。Gateway 透過您的 OAuth Token 進行驗證,加入指定頻道並監聽訊息。 當觀眾發送觸發機器人的訊息時(預設為 @提及),Gateway 會將其轉發至您的 AI 代理。回應會發送回相同的 Twitch 頻道,並自動以每條訊息 500 個字元為限進行分段,以符合 Twitch 的限制。 每個帳號對應一個唯一的工作階段金鑰(agent:<agentId>:twitch:<accountName>),因此多個帳號可以在同一個 Gateway 下獨立運作。由於 Twitch 聊天室不支援 Markdown 渲染,發送前會自動移除 Markdown 格式。
回覆會確定性地路由回其來源的 Twitch 頻道。
超過 500 個字元的訊息會自動在字詞邊界處分段。

取得您的憑證

您需要三個憑證來進行連接:一個 OAuth Access Token、一個 Client ID,以及機器人的使用者名稱。 1. 前往 twitchtokengenerator.com,選擇 'Bot Token'。 2. 授權具有 chat:read 和 chat:write 權限的 Token。 3. 複製產生的 Access Token(以 'oauth:' 開頭)。 4. 若要取得 Client ID,請前往 Twitch Developer Console(dev.twitch.tv/console),註冊一個應用程式並複製其 Client ID。 Access Token 也可以透過 OPENCLAW_TWITCH_ACCESS_TOKEN 環境變數提供。若同時設定了環境變數和設定檔中的值,以設定檔為準。
terminal
# Environment variable (default account only)
export OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
切勿將 Access Token 提交至版本控制系統。請使用環境變數或密鑰管理工具。
從 twitchtokengenerator.com 取得的 Token 會在數小時後過期。請為長時間執行的機器人設定自動重新整理。

自動 Token 重新整理

從 Twitch Token Generator 取得的 Token 會在數小時後過期。對於正式環境的機器人,請設定自動 Token 重新整理以避免停機。 1. 在 Twitch Developer Console(dev.twitch.tv/console)註冊一個應用程式。 2. 記下 Client Secret,並使用 OAuth Authorization Code 流程取得 Refresh Token。 3. 將 clientSecret 和 refreshToken 新增至您的帳號設定中。 機器人會在 Token 過期前自動重新整理,並記錄重新整理事件以供監控。
openclaw.json
{
  "channels": {
    "twitch": {
      "accessToken": "oauth:abc123...",
      "clientId": "your-client-id",
      "clientSecret": "your-client-secret",
      "refreshToken": "your-refresh-token"
    }
  }
}
若未設定自動重新整理,您必須在每次 Token 過期時手動更換。

使用使用者 ID 進行存取控制

Twitch 使用者名稱可以隨時變更,這會產生冒充風險。OpenClaw 強烈建議使用數字使用者 ID 來進行存取控制,而非使用者名稱。 allowFrom 欄位接受一個永久 Twitch 使用者 ID 的陣列。只有 ID 在此清單中的使用者才能與機器人互動,其他人會被靜默忽略。 您可以使用 Twitch API 或第三方工具(如 twitchinsights.net)查詢使用者的數字 ID。
openclaw.json
{
  "channels": {
    "twitch": {
      "allowFrom": ["123456789", "987654321"]
    }
  }
}
使用者 ID 是永久的,不受使用者名稱變更影響。基於安全考量,請務必優先使用 ID 而非使用者名稱。

角色存取控制

除了(或代替)明確的使用者 ID 允許清單,您也可以透過 Twitch 聊天室角色來限制存取。allowedRoles 欄位接受一個角色名稱的陣列。 可用角色: • moderator — 頻道管理員 • owner — 頻道實況主 • vip — VIP 使用者 • subscriber — 頻道訂閱者 • all — 頻道中的所有人(請謹慎使用) 設定 allowedRoles 後,只有具備至少一個符合角色的使用者才能與機器人互動。
openclaw.json
{
  "channels": {
    "twitch": {
      "allowedRoles": ["moderator", "vip"]
    }
  }
}
將 allowedRoles 設定為 ['all'] 會讓所有觀眾都能與機器人互動,在繁忙的頻道中可能會消耗大量 AI 配額。

提及要求

預設情況下,機器人僅在聊天室中被明確 @提及時才會回應(requireMention: true)。這可以防止機器人在繁忙的頻道中回應每一條訊息。 您可以將 requireMention 設定為 false 來停用此行為,使機器人回應所有來自允許使用者的訊息。這適用於專屬機器人頻道或低流量的實況。
openclaw.json
{
  "channels": {
    "twitch": {
      "requireMention": false
    }
  }
}
在繁忙的頻道中建議保持 requireMention 啟用,以避免機器人被每一條聊天訊息淹沒。

多帳號設定

OpenClaw 支援同時執行多個 Twitch 機器人帳號。每個帳號需要自己的 OAuth Token,並對應一個頻道。 使用 accounts.<name> 模式來設定多個帳號。每個帳號可以擁有獨立的存取控制、提及要求和 Token 重新整理設定。
openclaw.json
{
  "channels": {
    "twitch": {
      "accounts": {
        "gaming-bot": {
          "username": "gamingbot",
          "accessToken": "oauth:token1...",
          "clientId": "client-id-1",
          "channel": "gamingchannel",
          "allowedRoles": ["subscriber"]
        },
        "mod-bot": {
          "username": "modbot",
          "accessToken": "oauth:token2...",
          "clientId": "client-id-2",
          "channel": "modchannel",
          "allowFrom": ["111222333"]
        }
      }
    }
  }
}

代理工具動作

AI 代理可以使用 twitch 工具動作主動向 Twitch 頻道發送訊息。這允許代理在沒有使用者觸發的情況下發送通知、警報或排程訊息。 此動作需要一條訊息和一個目標頻道(以 # 為前綴)。
agent-action.json
{
  "action": "twitch",
  "params": {
    "message": "Hello Twitch!",
    "to": "#mychannel"
  }
}
工具動作遵循與一般聊天訊息相同的速率限制。

速率限制與訊息限制

Twitch 對聊天訊息實施嚴格的速率限制。OpenClaw 使用 Twitch 內建的速率限制機制,不額外增加限制層。 標準(未驗證)帳號: • 每 30 秒 20 條訊息(非管理員/VIP) • 每 30 秒 100 條訊息(管理員/VIP/實況主) 已驗證的機器人帳號: • 每 30 秒 7,500 條訊息 所有帳號每個頻道限制為每秒 1 條訊息。超過限制的訊息會被 Twitch 靜默丟棄。 訊息最大長度為 500 個字元。較長的回應會自動在字詞邊界處分段。
若您的機器人超過速率限制,Twitch 會靜默丟棄訊息而不產生任何錯誤。請在繁忙的頻道中監控機器人的活動。

Twitch 設定參考

enabled
Type: booleanDefault: true

啟用或停用 Twitch 頻道

username
Type: stringDefault: ""

機器人使用的 Twitch 帳號名稱

accessToken
Type: stringDefault: ""

具有 chat:read 和 chat:write 權限的 OAuth Token(必須以 'oauth:' 開頭)

clientId
Type: stringDefault: ""

來自 Twitch Developer Console 的 Client ID

channel
Type: stringDefault: ""

要加入的目標 Twitch 頻道(必填)

clientSecret
Type: stringDefault: ""

用於自動 Token 重新整理的 Client Secret

refreshToken
Type: stringDefault: ""

用於自動 Token 續期的 Refresh Token

expiresIn
Type: numberDefault:

Token 過期時間(秒)

obtainmentTimestamp
Type: numberDefault:

目前 Token 取得時的時間戳記(毫秒)

allowFrom
Type: string[]Default: []

用於嚴格存取限制的 Twitch 使用者 ID 允許清單

allowedRoles
Type: string[]Default: []

角色存取控制(moderator、owner、vip、subscriber、all)

requireMention
Type: booleanDefault: true

機器人是否需要被 @提及才會回應

accounts.<id>.username
Type: stringDefault: ""

多帳號模式下特定帳號的機器人使用者名稱

accounts.<id>.accessToken
Type: stringDefault: ""

特定帳號的 OAuth Token

accounts.<id>.channel
Type: stringDefault: ""

特定帳號的目標頻道

Twitch 常見問題

Twitch 故障排除

機器人無回應 — 不回覆訊息

allowFrom 清單可能未包含您的使用者 ID,或者機器人未偵測到 @提及。

確認您的 Twitch 使用者 ID(非使用者名稱)已加入 allowFrom 陣列。測試時,可嘗試將 allowedRoles 設定為 ['all']。若 requireMention 為 true,請檢查您是否正確 @提及了機器人。
啟動時驗證失敗

OAuth Token 無效、已過期,或缺少必要的權限。

確保 Token 以 'oauth:' 開頭,並具有 chat:read 和 chat:write 權限。在 twitchtokengenerator.com 產生新的 Token。檢查 Gateway 日誌以取得具體的錯誤訊息。
Token 重新整理無法運作

clientSecret 或 refreshToken 遺失或不正確。

確保設定中已提供 clientSecret 和 refreshToken。Client Secret 必須與在 dev.twitch.tv/console 註冊的應用程式相符。檢查日誌以取得 Token 重新整理的錯誤詳情。
訊息被靜默丟棄

機器人超過了 Twitch 的速率限制。

降低訊息頻率。標準帳號限制為每 30 秒 20 條訊息(管理員為 100 條)。考慮申請已驗證機器人狀態以獲得更高限制。檢查機器人是否產生過長的回應,導致分段後訊息數量過多。
機器人已連線但未加入頻道

頻道名稱可能不正確,或帳號已被該頻道封鎖。

確認頻道名稱正確(小寫,不含 # 前綴)。檢查 Gateway 日誌中的 JOIN 錯誤。確保機器人帳號未在目標頻道中被封鎖或暫時停權。