前言
Twitch 是全球最大的游戏直播平台之一。通过 OpenClaw 对接 Twitch 聊天室,你可以为直播间添加一个 AI 聊天机器人,与观众互动、回答问题或执行自定义命令。
前置要求
- 已安装并运行 OpenClaw
- 一个 Twitch 账号(建议创建专用的 Bot 账号)
- 你的 Twitch 直播频道
安装 Twitch 插件
openclaw plugins install @openclaw/twitch
创建 Bot 账号
强烈建议创建一个专用的 Twitch 账号作为机器人,不要使用你的主播账号:
- 注册新的 Twitch 账号,命名为如
YourName_Bot - 在你的直播频道中将 Bot 账号设为 Moderator(可选但推荐)
获取 Bot Token
使用 Twitch Token Generator
访问 Twitch Token Generator 获取 OAuth Token。
所需权限(Scopes):
chat:read- 读取聊天消息chat:write- 发送聊天消息(即chat:edit)
生成后你会得到一个 Access Token 和 Refresh Token。
手动获取(高级)
如果需要更精细的控制,可以通过 Twitch Developer Console 注册应用:
- 访问 Twitch Developer Console
- 注册新应用,获取 Client ID 和 Client Secret
- 使用 OAuth 授权流程获取 Token
# OAuth 授权 URL
https://id.twitch.tv/oauth2/authorize?client_id=你的ClientID&redirect_uri=http://localhost:3000&response_type=code&scope=chat:read+chat:edit
获取用户 ID
Twitch 的 allowFrom 等配置需要使用数字用户 ID 而非用户名。获取方式:
# 通过 Twitch API 查询用户 ID
curl -H "Authorization: Bearer 你的Token" \
-H "Client-Id: 你的ClientID" \
"https://api.twitch.tv/helix/users?login=用户名"
返回结果中的 id 字段即为用户 ID。
也可以使用在线工具如 Twitch ID Lookup 进行转换。
OpenClaw 频道配置
channels:
- type: twitch
accessToken: "你的Access Token"
clientId: "你的Client ID"
channel: "你的直播频道名"
requireMention: true
allowFrom:
- "123456789" # 用户 ID
- "987654321"
allowedRoles:
- "moderator"
- "subscriber"
配置项说明
| 配置项 | 说明 | 示例 |
|---|---|---|
accessToken |
Bot 的 OAuth Token | oauth:xxxxxxxxx |
clientId |
应用的 Client ID | xxxxxxxxxxxxxxxxx |
channel |
目标直播频道名 | your_channel_name |
requireMention |
是否需要 @ 机器人 | true / false |
用户权限控制
allowFrom(用户白名单)
通过用户 ID 精确控制谁可以与 AI 互动:
allowFrom:
- "123456789" # 主播本人
- "234567890" # 管理员
- "345678901" # VIP 观众
如果不设置 allowFrom,将根据 allowedRoles 控制访问。
allowedRoles(角色权限)
基于 Twitch 聊天室角色控制访问权限:
allowedRoles:
- "owner" # 频道所有者(主播)
- "moderator" # 频道管理员
- "vip" # VIP 用户
- "subscriber" # 订阅者
- "all" # 所有用户
可以组合多个角色:
# 仅主播和管理员可以使用 AI
allowedRoles:
- "owner"
- "moderator"
# 订阅者及以上可以使用
allowedRoles:
- "owner"
- "moderator"
- "vip"
- "subscriber"
requireMention
在活跃的直播聊天中,建议开启 requireMention,避免 AI 对每条弹幕都做出回应:
requireMention: true
观众需要 @ 机器人名称才能触发 AI 回复:
@OpenClaw_Bot 这个游戏怎么通关?
Token 刷新机制
Twitch 的 Access Token 有效期有限(通常约 4 小时),需要配置自动刷新。
注册 Client Application
在 Twitch Developer Console 中注册应用获取 Client ID 和 Client Secret,然后配置自动刷新:
channels:
- type: twitch
accessToken: "你的Access Token"
refreshToken: "你的Refresh Token"
clientId: "你的Client ID"
clientSecret: "你的Client Secret"
channel: "your_channel_name"
配置了 refreshToken 和 clientSecret 后,OpenClaw 会在 Token 过期前自动使用 Refresh Token 获取新的 Access Token,无需手动干预。
# 手动测试 Token 刷新
curl -X POST "https://id.twitch.tv/oauth2/token" \
-d "grant_type=refresh_token" \
-d "refresh_token=你的RefreshToken" \
-d "client_id=你的ClientID" \
-d "client_secret=你的ClientSecret"
多账号支持
如果你管理多个直播频道,可以配置多个 Twitch 连接:
channels:
- type: twitch
name: "游戏频道"
accessToken: "token1"
clientId: "client1"
channel: "gaming_channel"
allowedRoles: ["all"]
- type: twitch
name: "教程频道"
accessToken: "token2"
clientId: "client2"
channel: "tutorial_channel"
allowedRoles: ["subscriber"]
使用场景
观众问答
设置 AI 回答直播间观众的常见问题:
观众:@Bot 主播用的什么键盘?
Bot:主播使用的是客制化机械键盘,轴体为佳达隆 V2 银轴。
内容总结
让 AI 总结直播间讨论的内容或实时提供信息。
互动游戏
结合 AI 的创造力,设计直播间互动小游戏。
常见问题
Bot 无法发送消息
- 确认 Token 包含
chat:write(或chat:edit)权限 - 检查 Bot 账号是否被直播间禁言
- 确认频道名称拼写正确(全小写)
Token 频繁过期
确保配置了 refreshToken 和 clientSecret,让 OpenClaw 自动刷新 Token。如果仍有问题,检查 Client Application 的设置是否正确。
AI 回复过于频繁
在活跃的直播间中,开启 requireMention 并合理设置 allowedRoles,限制触发 AI 的条件:
requireMention: true
allowedRoles: ["moderator", "vip", "subscriber"]
消息被 Twitch 限流
Twitch 对机器人有消息发送频率限制。如果机器人是频道 Moderator,限制会放宽。避免短时间内发送大量消息。
总结
Twitch 频道对接让 AI 助手成为直播间的互动工具。合理配置角色权限和提及要求可以平衡互动性和聊天室秩序。记得配置 Token 自动刷新机制,确保机器人长时间稳定运行。