Chuyển đến nội dung chính

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Hỗ trợ chat Twitch qua kết nối IRC. OpenClaw kết nối dưới dạng người dùng Twitch (tài khoản bot) để nhận và gửi tin nhắn trong các kênh.

Plugin đi kèm

Twitch được phát hành dưới dạng Plugin đi kèm trong các bản phát hành OpenClaw hiện tại, nên các bản dựng đóng gói thông thường không cần cài đặt riêng.
Nếu bạn đang dùng bản dựng cũ hơn hoặc bản cài đặt tùy chỉnh loại trừ Twitch, hãy cài đặt gói npm hiện tại khi gói đó được phát hành:
openclaw plugins install @openclaw/twitch
Nếu npm báo gói do OpenClaw sở hữu là đã lỗi thời, hãy dùng bản dựng OpenClaw được đóng gói hiện tại hoặc đường dẫn checkout cục bộ cho đến khi gói npm mới hơn được phát hành. Chi tiết: Plugins

Thiết lập nhanh (người mới bắt đầu)

1

Ensure plugin is available

Các bản phát hành OpenClaw đóng gói hiện tại đã đi kèm Plugin này. Các bản cài đặt cũ hơn/tùy chỉnh có thể thêm thủ công bằng các lệnh ở trên.
2

Create a Twitch bot account

Tạo một tài khoản Twitch riêng cho bot (hoặc dùng một tài khoản hiện có).
3

Generate credentials

Dùng Twitch Token Generator:
  • Chọn Token bot
  • Xác minh các phạm vi chat:readchat:write đã được chọn
  • Sao chép ID ứng dụng kháchToken truy cập
4

Find your Twitch user ID

Dùng https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ để chuyển đổi tên người dùng thành ID người dùng Twitch.
5

Configure the token

  • Biến môi trường: OPENCLAW_TWITCH_ACCESS_TOKEN=... (chỉ tài khoản mặc định)
  • Hoặc cấu hình: channels.twitch.accessToken
Nếu cả hai đều được đặt, cấu hình được ưu tiên (phương án dự phòng bằng biến môi trường chỉ áp dụng cho tài khoản mặc định).
6

Start the gateway

Khởi động Gateway với kênh đã cấu hình.
Thêm kiểm soát truy cập (allowFrom hoặc allowedRoles) để ngăn người dùng trái phép kích hoạt bot. requireMention mặc định là true.
Cấu hình tối thiểu:
{
  channels: {
    twitch: {
      enabled: true,
      username: "openclaw", // Bot's Twitch account
      accessToken: "oauth:abc123...", // OAuth Access Token (or use OPENCLAW_TWITCH_ACCESS_TOKEN env var)
      clientId: "xyz789...", // Client ID from Token Generator
      channel: "vevisk", // Which Twitch channel's chat to join (required)
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only - get it from https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
    },
  },
}

Đây là gì

  • Một kênh Twitch do Gateway sở hữu.
  • Định tuyến xác định: phản hồi luôn quay lại Twitch.
  • Mỗi tài khoản ánh xạ tới một khóa phiên tách biệt agent:<agentId>:twitch:<accountName>.
  • username là tài khoản của bot (dùng để xác thực), channel là phòng chat cần tham gia.

Thiết lập (chi tiết)

Tạo thông tin xác thực

Dùng Twitch Token Generator:
  • Chọn Token bot
  • Xác minh các phạm vi chat:readchat:write đã được chọn
  • Sao chép ID ứng dụng kháchToken truy cập
Không cần đăng ký ứng dụng thủ công. Token hết hạn sau vài giờ.

Cấu hình bot

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Nếu cả biến môi trường và cấu hình đều được đặt, cấu hình được ưu tiên.

Kiểm soát truy cập (khuyến nghị)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Ưu tiên allowFrom để tạo danh sách cho phép cứng. Dùng allowedRoles thay thế 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".
Vì sao dùng ID người dùng? Tên người dùng có thể thay đổi, cho phép mạo danh. 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ể được tự động làm mới - hãy tạo lại khi hết hạn. Để tự động làm mới token, hãy tạo ứng dụng Twitch của riêng bạn tại Twitch Developer Console và thêm vào cấu hình:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
Bot tự động làm mới token trước khi hết hạn và ghi nhật ký các sự kiện làm mới.

Hỗ trợ nhiều tài khoản

Dùng channels.twitch.accounts với token riêng cho từng tài khoản. Xem Cấu hình để biết mẫu dùng chung. Ví dụ (một tài khoản bot trong hai kênh):
{
  channels: {
    twitch: {
      accounts: {
        channel1: {
          username: "openclaw",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "vevisk",
        },
        channel2: {
          username: "openclaw",
          accessToken: "oauth:def456...",
          clientId: "uvw012...",
          channel: "secondchannel",
        },
      },
    },
  },
}
Mỗi tài khoản cần token riêng (một token cho mỗi kênh).

Kiểm soát truy cập

{
  channels: {
    twitch: {
      accounts: {
        default: {
          allowFrom: ["123456789", "987654321"],
        },
      },
    },
  },
}

Khắc phục sự cố

Trước tiên, chạy các lệnh chẩn đoán:
openclaw doctor
openclaw channels status --probe
  • Kiểm tra kiểm soát truy cập: Đảm bảo ID người dùng của bạn có trong allowFrom, hoặc tạm thời xóa allowFrom và đặt allowedRoles: ["all"] để kiểm thử.
  • Kiểm tra bot đang ở trong kênh: Bot phải tham gia kênh được chỉ định trong channel.
“Không thể kết nối” hoặc lỗi xác thực:
  • Xác minh accessToken là giá trị token truy cập OAuth (thường bắt đầu bằng tiền tố oauth:)
  • Kiểm tra token có các phạm vi chat:readchat:write
  • Nếu dùng làm mới token, hãy xác minh clientSecretrefreshToken đã được đặt
Kiểm tra nhật ký để tìm sự kiện làm mới:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Nếu bạn thấy “đã tắt làm mới token (không có token 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
string
Tên người dùng bot.
accessToken
string
Token truy cập OAuth với chat:readchat:write.
clientId
string
ID ứng dụng khách Twitch (từ Token Generator hoặc ứng dụng của bạn).
channel
string
bắt buộc
Kênh cần tham gia.
enabled
boolean
mặc định:"true"
Bật tài khoản này.
clientSecret
string
Tùy chọn: dùng cho làm mới token tự động.
refreshToken
string
Tùy chọn: dùng cho làm mới token tự động.
expiresIn
number
Thời gian hết hạn token tính bằng giây.
obtainmentTimestamp
number
Dấu thời gian lấy token.
allowFrom
string[]
Danh sách cho phép theo ID người dùng.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Kiểm soát truy cập dựa trên vai trò.
requireMention
boolean
mặc định:"true"
Yêu cầu @mention.

Tùy chọn nhà cung cấp

  • channels.twitch.enabled - Bật/tắt khởi động kênh
  • channels.twitch.username - Tên người dùng bot (cấu hình một tài khoản đơn giản hóa)
  • channels.twitch.accessToken - Token truy cập OAuth (cấu hình một tài khoản đơn giản hóa)
  • channels.twitch.clientId - ID ứng dụng khách Twitch (cấu hình một tài khoản đơn giản hóa)
  • channels.twitch.channel - Kênh cần tham gia (cấu hình một tài khoản đơn giản hóa)
  • channels.twitch.accounts.<accountName> - Cấu hình nhiều tài khoản (tất cả trường tài khoản ở trên)
Ví dụ đầy đủ:
{
  channels: {
    twitch: {
      enabled: true,
      username: "openclaw",
      accessToken: "oauth:abc123...",
      clientId: "xyz789...",
      channel: "vevisk",
      clientSecret: "secret123...",
      refreshToken: "refresh456...",
      allowFrom: ["123456789"],
      allowedRoles: ["moderator", "vip"],
      accounts: {
        default: {
          username: "mybot",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "your_channel",
          enabled: true,
          clientSecret: "secret123...",
          refreshToken: "refresh456...",
          expiresIn: 14400,
          obtainmentTimestamp: 1706092800000,
          allowFrom: ["123456789", "987654321"],
          allowedRoles: ["moderator"],
        },
      },
    },
  },
}

Hành động công cụ

Agent có thể gọi twitch với hành động:
  • send - Gửi tin nhắn tới một kênh
Ví dụ:
{
  action: "twitch",
  params: {
    message: "Hello Twitch!",
    to: "#mychannel",
  },
}

An toàn và vận hành

  • Xem token như mật khẩu — Không bao giờ commit token vào git.
  • Dùng làm mới token tự động cho bot chạy lâu dài.
  • Dùng danh sách cho phép theo 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ý để theo dõi 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 ở mức tối thiểu — Chỉ yêu cầu chat:readchat:write.
  • Nếu bị kẹt: Khởi động lại Gateway sau khi xác nhận không có tiến 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 đoạn tại ranh giới từ).
  • Markdown bị loại bỏ trước khi chia đoạn.
  • Không giới hạn tốc độ (dùng giới hạn tốc độ tích hợp của Twitch).

Liên quan