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

Documentation Index

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

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

Hỗ trợ trò chuyện 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, vì vậy 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 trực tiếp gói npm:
openclaw plugins install @openclaw/twitch
Dùng gói trần để theo thẻ phát hành chính thức hiện tại. Chỉ ghim một phiên bản chính xác khi bạn cần bản cài đặt có thể tái lập. Chi tiết: Plugins

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

1

Đảm bảo Plugin có sẵn

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

Tạo tài khoản bot Twitch

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

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

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

Tìm ID người dùng Twitch của bạn

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

Cấu hình mã thông báo

  • 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 (dự phòng bằng biến môi trường chỉ áp dụng cho tài khoản mặc định).
6

Khởi động 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: các 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 cô lập agent:<agentId>:twitch:<accountName>.
  • username là tài khoản của bot (tài khoản xác thực), channel là phòng trò chuyện 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 Mã bot
  • Xác minh các phạm vi chat:readchat:write đã được chọn
  • Sao chép ID máy kháchMã truy cập
Không cần đăng ký ứng dụng thủ công. Mã thông báo 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 cho danh sách cho phép cứng. Thay vào đó 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".
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 mã thông báo (tùy chọn)

Các mã thông báo từ Twitch Token Generator không thể được làm mới tự động - hãy tạo lại khi hết hạn. Để tự động làm mới mã thông báo, 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 mã thông báo 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 mã thông báo theo 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 mã thông báo riêng (một mã thông báo 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 nằm trong allowFrom, hoặc tạm thời xóa allowFrom và đặt allowedRoles: ["all"] để kiểm thử.
  • Kiểm tra bot có ở trong kênh: Bot phải tham gia kênh được chỉ định trong channel.
“Không kết nối được” hoặc lỗi xác thực:
  • Xác minh accessToken là giá trị mã truy cập OAuth (thường bắt đầu bằng tiền tố oauth:)
  • Kiểm tra mã thông báo có các phạm vi chat:readchat:write
  • Nếu dùng làm mới mã thông báo, xác minh clientSecretrefreshToken đã được đặt
Kiểm tra nhật ký để tìm các 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 “token refresh disabled (no refresh token)”:
  • Đả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
Mã truy cập OAuth với chat:readchat:write.
clientId
string
ID máy 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 để tự động làm mới mã thông báo.
refreshToken
string
Tùy chọn: dùng để tự động làm mới mã thông báo.
expiresIn
number
Thời hạn mã thông báo tính bằng giây.
obtainmentTimestamp
number
Dấu thời gian lấy mã thông báo.
allowFrom
string[]
Danh sách cho phép 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 được đơn giản hóa)
  • channels.twitch.accessToken - Mã truy cập OAuth (cấu hình một tài khoản được đơn giản hóa)
  • channels.twitch.clientId - ID máy khách Twitch (cấu hình một tài khoản được đơn giản hóa)
  • channels.twitch.channel - Kênh cần tham gia (cấu hình một tài khoản được đơn giản hóa)
  • 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)
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ụ

Tác nhân 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

  • Xử lý mã thông báo như mật khẩu — Không bao giờ commit mã thông báo vào git.
  • Dùng tự động làm mới mã thông báo cho các bot chạy lâu dài.
  • 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ý để theo dõi sự kiện làm mới mã thông báo và trạng thái kết nối.
  • Giới hạn phạm vi mã thông báo ở 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ự cho mỗi tin nhắn (tự động chia đoạn ở 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