Twitch (plugin)
Hỗ trợ chat Twitch thông qua kết nối IRC. OpenClaw kết nối như một người dùng Twitch (tài khoản bot) để nhận và gửi tin nhắn trong các kênh.Yêu cầu plugin
Twitch được cung cấp dưới dạng plugin và không đi kèm với cài đặt gốc. Cài đặt qua CLI (npm registry):Thiết lập nhanh (cho người mới bắt đầu)
- Tạo một tài khoản Twitch riêng cho bot (hoặc sử dụng tài khoản hiện có).
- Tạo thông tin xác thực: Twitch Token Generator
- Chọn Bot Token
- Đảm bảo các phạm vi
chat:readvàchat:writeđã được chọn - Sao chép Client ID và Access Token
- Tìm ID người dùng Twitch của bạn: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Cấu hình token:
- Env:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(chỉ tài khoản mặc định) - Hoặc config:
channels.twitch.accessToken - Nếu cả hai đều được thiết lập, config sẽ được ưu tiên (env chỉ là tài khoản mặc định).
- Env:
- Khởi động gateway.
allowFrom hoặc allowedRoles) để ngăn người dùng không được phép kích hoạt bot. requireMention mặc định là true.
Cấu hình tối thiểu:
Nó là gì
- Một kênh Twitch thuộc sở hữu của Gateway.
- Định tuyến xác định: trả lời luôn quay lại Twitch.
- Mỗi tài khoản ánh xạ tới một khóa phiên riêng biệt
agent:<agentId>:twitch:<accountName>. usernamelà tài khoản của bot (người xác thực),channellà phòng chat nào để tham gia.
Thiết lập (chi tiết)
Tạo thông tin xác thực
Sử dụng Twitch Token Generator:- Chọn Bot Token
- Đảm bảo các phạm vi
chat:readvàchat:writeđã được chọn - Sao chép Client ID và Access Token
Cấu hình bot
Biến môi trường (chỉ tài khoản mặc định):Kiểm soát truy cập (khuyến nghị)
allowFrom cho danh sách cho phép cứng. Sử dụng allowedRoles nếu bạn muốn truy cập dựa trên vai trò.
Vai trò có sẵn: "moderator", "owner", "vip", "subscriber", "all".
Tại sao sử dụng ID người dùng? Tên người dùng có thể thay đổi, cho phép giả mạo. ID người dùng là vĩnh viễn.
Tìm ID người dùng Twitch của bạn: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (Chuyển đổi tên người dùng Twitch của bạn thành ID)
Làm mới token (tùy chọn)
Token từ Twitch Token Generator không thể tự động làm mới - tạo lại khi hết hạn. Để tự động làm mới token, tạo ứng dụng Twitch của riêng bạn tại Twitch Developer Console và thêm vào config:Hỗ trợ nhiều tài khoản
Sử dụngchannels.twitch.accounts với token cho từng tài khoản. Xem gateway/configuration cho mẫu chia sẻ.
Ví dụ (một tài khoản bot trong hai kênh):
Kiểm soát truy cập
Hạn chế dựa trên vai trò
Danh sách cho phép theo ID người dùng (an toàn nhất)
Truy cập dựa trên vai trò (thay thế)
allowFrom là danh sách cho phép cứng. Khi được thiết lập, chỉ những ID người dùng đó được phép.
Nếu bạn muốn truy cập dựa trên vai trò, để trống allowFrom và cấu hình allowedRoles thay thế:
Vô hiệu hóa yêu cầu @mention
Mặc định,requireMention là true. Để vô hiệu hóa và phản hồi tất cả tin nhắn:
Khắc phục sự cố
Đầu tiên, chạy các lệnh chẩn đoán:Bot không phản hồi tin nhắn
Kiểm tra kiểm soát truy cập: Đảm bảo ID người dùng của bạn có trongallowFrom, hoặc tạm thời xóa
allowFrom và thiết lập allowedRoles: ["all"] để kiểm tra.
Kiểm tra bot có trong kênh: Bot phải tham gia kênh được chỉ định trong channel.
Vấn đề về token
“Không thể kết nối” hoặc lỗi xác thực:- Xác minh
accessTokenlà giá trị OAuth access token (thường bắt đầu với tiền tốoauth:) - Kiểm tra token có các phạm vi
chat:readvàchat:write - Nếu sử dụng làm mới token, xác minh
clientSecretvàrefreshTokenđã được thiết lập
Làm mới token không hoạt động
Kiểm tra nhật ký cho các sự kiện làm mới:- Đảm bảo
clientSecretđã được cung cấp - Đảm bảo
refreshTokenđã được cung cấp
Cấu hình
Cấu hình tài khoản:username- Tên người dùng botaccessToken- OAuth access token vớichat:readvàchat:writeclientId- Twitch Client ID (từ Token Generator hoặc ứng dụng của bạn)channel- Kênh để tham gia (bắt buộc)enabled- Kích hoạt tài khoản này (mặc định:true)clientSecret- Tùy chọn: Để tự động làm mới tokenrefreshToken- Tùy chọn: Để tự động làm mới tokenexpiresIn- Thời gian hết hạn token tính bằng giâyobtainmentTimestamp- Thời điểm lấy tokenallowFrom- Danh sách cho phép ID người dùngallowedRoles- Kiểm soát truy cập dựa trên vai trò ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- Yêu cầu @mention (mặc định:true)
channels.twitch.enabled- Bật/tắt khởi động kênhchannels.twitch.username- Tên người dùng bot (cấu hình đơn giản cho một tài khoản)channels.twitch.accessToken- OAuth access token (cấu hình đơn giản cho một tài khoản)channels.twitch.clientId- Twitch Client ID (cấu hình đơn giản cho một tài khoản)channels.twitch.channel- Kênh để tham gia (cấu hình đơn giản cho một tài khoản)channels.twitch.accounts.<accountName>- Cấu hình nhiều tài khoản (tất cả các trường tài khoản ở trên)
Hành động công cụ
Agent có thể gọitwitch với hành động:
send- Gửi một tin nhắn đến một kênh
An toàn & vận hành
- Xử lý token như mật khẩu - Không bao giờ commit token vào git
- Sử dụng làm mới token tự động cho bot chạy lâu dài
- Sử dụng danh sách cho phép ID người dùng thay vì tên người dùng để kiểm soát truy cập
- Giám sát nhật ký cho các sự kiện làm mới token và trạng thái kết nối
- Giới hạn phạm vi token tối thiểu - Chỉ yêu cầu
chat:readvàchat:write - Nếu gặp khó khăn: Khởi động lại gateway sau khi xác nhận không có quá trình nào khác sở hữu phiên
Giới hạn
- 500 ký tự mỗi tin nhắn (tự động chia nhỏ tại ranh giới từ)
- Markdown bị loại bỏ trước khi chia nhỏ
- Không giới hạn tốc độ (sử dụng giới hạn tốc độ tích hợp của Twitch)