Langsung ke konten utama

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.

Dukungan chat Twitch melalui koneksi IRC. OpenClaw terhubung sebagai pengguna Twitch (akun bot) untuk menerima dan mengirim pesan di channel.

Plugin bawaan

Twitch disertakan sebagai Plugin bawaan dalam rilis OpenClaw saat ini, jadi build paket normal tidak memerlukan instalasi terpisah.
Jika Anda menggunakan build lama atau instalasi kustom yang mengecualikan Twitch, instal paket npm secara langsung:
openclaw plugins install @openclaw/twitch
Gunakan paket dasar untuk mengikuti tag rilis resmi saat ini. Pin versi persis hanya ketika Anda memerlukan instalasi yang dapat direproduksi. Detail: Plugin

Penyiapan cepat (pemula)

1

Pastikan Plugin tersedia

Rilis OpenClaw paket saat ini sudah menyertakannya. Instalasi lama/kustom dapat menambahkannya secara manual dengan perintah di atas.
2

Buat akun bot Twitch

Buat akun Twitch khusus untuk bot (atau gunakan akun yang sudah ada).
3

Buat kredensial

Gunakan Twitch Token Generator:
  • Pilih Bot Token
  • Pastikan scope chat:read dan chat:write dipilih
  • Salin Client ID dan Access Token
4

Temukan ID pengguna Twitch Anda

Gunakan https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ untuk mengonversi nama pengguna menjadi ID pengguna Twitch.
5

Konfigurasikan token

  • Env: OPENCLAW_TWITCH_ACCESS_TOKEN=... (hanya akun default)
  • Atau config: channels.twitch.accessToken
Jika keduanya diatur, config lebih diprioritaskan (fallback env hanya untuk akun default).
6

Mulai gateway

Mulai gateway dengan channel yang telah dikonfigurasi.
Tambahkan kontrol akses (allowFrom atau allowedRoles) untuk mencegah pengguna tidak sah memicu bot. requireMention bernilai default true.
Config minimal:
{
  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/
    },
  },
}

Apa ini

  • Channel Twitch yang dimiliki oleh Gateway.
  • Perutean deterministik: balasan selalu kembali ke Twitch.
  • Setiap akun dipetakan ke kunci sesi terisolasi agent:<agentId>:twitch:<accountName>.
  • username adalah akun bot (yang melakukan autentikasi), channel adalah ruang chat yang akan dimasuki.

Penyiapan (terperinci)

Buat kredensial

Gunakan Twitch Token Generator:
  • Pilih Bot Token
  • Pastikan scope chat:read dan chat:write dipilih
  • Salin Client ID dan Access Token
Tidak perlu pendaftaran aplikasi manual. Token kedaluwarsa setelah beberapa jam.

Konfigurasikan bot

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Jika env dan config sama-sama diatur, config lebih diprioritaskan.

Kontrol akses (direkomendasikan)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Utamakan allowFrom untuk allowlist ketat. Gunakan allowedRoles sebagai gantinya jika Anda menginginkan akses berbasis peran. Peran yang tersedia: "moderator", "owner", "vip", "subscriber", "all".
Mengapa ID pengguna? Nama pengguna dapat berubah, sehingga memungkinkan impersonasi. ID pengguna bersifat permanen.Temukan ID pengguna Twitch Anda: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (Konversi nama pengguna Twitch Anda menjadi ID)

Refresh token (opsional)

Token dari Twitch Token Generator tidak dapat direfresh secara otomatis - buat ulang saat kedaluwarsa. Untuk refresh token otomatis, buat aplikasi Twitch Anda sendiri di Twitch Developer Console dan tambahkan ke config:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
Bot otomatis merefresh token sebelum kedaluwarsa dan mencatat event refresh.

Dukungan multi-akun

Gunakan channels.twitch.accounts dengan token per akun. Lihat Konfigurasi untuk pola bersama. Contoh (satu akun bot di dua channel):
{
  channels: {
    twitch: {
      accounts: {
        channel1: {
          username: "openclaw",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "vevisk",
        },
        channel2: {
          username: "openclaw",
          accessToken: "oauth:def456...",
          clientId: "uvw012...",
          channel: "secondchannel",
        },
      },
    },
  },
}
Setiap akun memerlukan tokennya sendiri (satu token per channel).

Kontrol akses

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

Pemecahan masalah

Pertama, jalankan perintah diagnostik:
openclaw doctor
openclaw channels status --probe
  • Periksa kontrol akses: Pastikan ID pengguna Anda ada di allowFrom, atau hapus allowFrom sementara dan atur allowedRoles: ["all"] untuk menguji.
  • Periksa apakah bot berada di channel: Bot harus masuk ke channel yang ditentukan di channel.
“Gagal terhubung” atau error autentikasi:
  • Pastikan accessToken adalah nilai token akses OAuth (biasanya dimulai dengan prefiks oauth:)
  • Periksa apakah token memiliki scope chat:read dan chat:write
  • Jika menggunakan refresh token, pastikan clientSecret dan refreshToken diatur
Periksa log untuk event refresh:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Jika Anda melihat “token refresh disabled (no refresh token)”:
  • Pastikan clientSecret disediakan
  • Pastikan refreshToken disediakan

Config

Config akun

username
string
Nama pengguna bot.
accessToken
string
Token akses OAuth dengan chat:read dan chat:write.
clientId
string
Client ID Twitch (dari Token Generator atau aplikasi Anda).
channel
string
wajib
Channel yang akan dimasuki.
enabled
boolean
default:"true"
Aktifkan akun ini.
clientSecret
string
Opsional: untuk refresh token otomatis.
refreshToken
string
Opsional: untuk refresh token otomatis.
expiresIn
number
Kedaluwarsa token dalam detik.
obtainmentTimestamp
number
Timestamp token diperoleh.
allowFrom
string[]
Allowlist ID pengguna.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Kontrol akses berbasis peran.
requireMention
boolean
default:"true"
Memerlukan @mention.

Opsi provider

  • channels.twitch.enabled - Aktifkan/nonaktifkan startup channel
  • channels.twitch.username - Nama pengguna bot (config satu akun yang disederhanakan)
  • channels.twitch.accessToken - Token akses OAuth (config satu akun yang disederhanakan)
  • channels.twitch.clientId - Client ID Twitch (config satu akun yang disederhanakan)
  • channels.twitch.channel - Channel yang akan dimasuki (config satu akun yang disederhanakan)
  • channels.twitch.accounts.<accountName> - Config multi-akun (semua field akun di atas)
Contoh lengkap:
{
  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"],
        },
      },
    },
  },
}

Tindakan alat

Agent dapat memanggil twitch dengan tindakan:
  • send - Kirim pesan ke channel
Contoh:
{
  action: "twitch",
  params: {
    message: "Hello Twitch!",
    to: "#mychannel",
  },
}

Keamanan dan ops

  • Perlakukan token seperti kata sandi — Jangan pernah commit token ke git.
  • Gunakan refresh token otomatis untuk bot yang berjalan lama.
  • Gunakan allowlist ID pengguna alih-alih nama pengguna untuk kontrol akses.
  • Pantau log untuk event refresh token dan status koneksi.
  • Batasi scope token seminimal mungkin — Hanya minta chat:read dan chat:write.
  • Jika macet: Mulai ulang gateway setelah memastikan tidak ada proses lain yang memiliki sesi.

Batasan

  • 500 karakter per pesan (dipecah otomatis pada batas kata).
  • Markdown dihapus sebelum pemecahan.
  • Tidak ada pembatasan laju (menggunakan batas laju bawaan Twitch).

Terkait