Twitch
Dukungan chat Twitch melalui koneksi IRC. OpenClaw terhubung sebagai pengguna Twitch (akun bot) untuk menerima dan mengirim pesan di channel.Plugin bawaan
Twitch dikirim sebagai plugin bawaan di rilis OpenClaw saat ini, jadi build paket normal tidak memerlukan instalasi terpisah. Jika Anda menggunakan build lama atau instalasi kustom yang tidak menyertakan Twitch, instal secara manual: Instal melalui CLI (registry npm):Penyiapan cepat (pemula)
- Pastikan plugin Twitch tersedia.
- Rilis OpenClaw terpaket saat ini sudah menyertakannya.
- Instalasi lama/kustom dapat menambahkannya secara manual dengan perintah di atas.
- Buat akun Twitch khusus untuk bot (atau gunakan akun yang sudah ada).
- Buat kredensial: Twitch Token Generator
- Pilih Bot Token
- Pastikan scope
chat:readdanchat:writedipilih - Salin Client ID dan Access Token
- Temukan ID pengguna Twitch Anda: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Konfigurasikan token:
- Env:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(hanya akun default) - Atau config:
channels.twitch.accessToken - Jika keduanya ditetapkan, config lebih diutamakan (fallback env hanya untuk akun default).
- Env:
- Mulai gateway.
allowFrom atau allowedRoles) untuk mencegah pengguna yang tidak berwenang memicu bot. requireMention default ke true.
Config minimal:
Apa ini
- Channel Twitch yang dimiliki oleh Gateway.
- Routing deterministik: balasan selalu kembali ke Twitch.
- Setiap akun dipetakan ke kunci sesi terisolasi
agent:<agentId>:twitch:<accountName>. usernameadalah akun bot (yang melakukan autentikasi),channeladalah ruang chat yang akan diikuti.
Penyiapan (detail)
Buat kredensial
Gunakan Twitch Token Generator:- Pilih Bot Token
- Pastikan scope
chat:readdanchat:writedipilih - Salin Client ID dan Access Token
Konfigurasikan bot
Env var (hanya akun default):Kontrol akses (disarankan)
allowFrom untuk allowlist yang ketat. Gunakan allowedRoles jika Anda menginginkan akses berbasis peran.
Peran yang tersedia: "moderator", "owner", "vip", "subscriber", "all".
Mengapa ID pengguna? Nama pengguna dapat berubah, sehingga memungkinkan penyamaran. 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 ke ID)
Penyegaran token (opsional)
Token dari Twitch Token Generator tidak dapat disegarkan secara otomatis - buat ulang saat kedaluwarsa. Untuk penyegaran token otomatis, buat aplikasi Twitch Anda sendiri di Twitch Developer Console lalu tambahkan ke config:Dukungan multi-akun
Gunakanchannels.twitch.accounts dengan token per akun. Lihat gateway/configuration untuk pola bersama.
Contoh (satu akun bot di dua channel):
Kontrol akses
Pembatasan berbasis peran
Allowlist berdasarkan ID Pengguna (paling aman)
Akses berbasis peran (alternatif)
allowFrom adalah allowlist yang ketat. Jika ditetapkan, hanya ID pengguna tersebut yang diizinkan.
Jika Anda menginginkan akses berbasis peran, biarkan allowFrom tidak ditetapkan dan konfigurasi allowedRoles sebagai gantinya:
Nonaktifkan persyaratan @mention
Secara default,requireMention adalah true. Untuk menonaktifkannya dan merespons semua pesan:
Troubleshooting
Pertama, jalankan perintah diagnostik:Bot tidak merespons pesan
Periksa kontrol akses: Pastikan ID pengguna Anda ada diallowFrom, atau hapus sementara
allowFrom dan tetapkan allowedRoles: ["all"] untuk pengujian.
Periksa apakah bot ada di channel: Bot harus bergabung ke channel yang ditentukan di channel.
Masalah token
“Failed to connect” atau error autentikasi:- Pastikan
accessTokenadalah nilai token akses OAuth (biasanya diawali prefiksoauth:) - Pastikan token memiliki scope
chat:readdanchat:write - Jika menggunakan penyegaran token, pastikan
clientSecretdanrefreshTokenditetapkan
Penyegaran token tidak berfungsi
Periksa log untuk event penyegaran:- Pastikan
clientSecretdisediakan - Pastikan
refreshTokendisediakan
Config
Config akun:username- Nama pengguna botaccessToken- Token akses OAuth denganchat:readdanchat:writeclientId- Twitch Client ID (dari Token Generator atau aplikasi Anda)channel- Channel yang akan diikuti (wajib)enabled- Aktifkan akun ini (default:true)clientSecret- Opsional: Untuk penyegaran token otomatisrefreshToken- Opsional: Untuk penyegaran token otomatisexpiresIn- Masa berlaku token dalam detikobtainmentTimestamp- Stempel waktu saat token diperolehallowFrom- Allowlist ID penggunaallowedRoles- Kontrol akses berbasis peran ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- Wajibkan @mention (default:true)
channels.twitch.enabled- Aktifkan/nonaktifkan startup channelchannels.twitch.username- Nama pengguna bot (config satu akun yang disederhanakan)channels.twitch.accessToken- Token akses OAuth (config satu akun yang disederhanakan)channels.twitch.clientId- Twitch Client ID (config satu akun yang disederhanakan)channels.twitch.channel- Channel yang akan diikuti (config satu akun yang disederhanakan)channels.twitch.accounts.<accountName>- Config multi-akun (semua field akun di atas)
Aksi tool
Agen dapat memanggiltwitch dengan aksi:
send- Mengirim pesan ke channel
Keamanan & operasi
- Perlakukan token seperti kata sandi - Jangan pernah mengomit token ke git
- Gunakan penyegaran token otomatis untuk bot yang berjalan lama
- Gunakan allowlist ID pengguna alih-alih nama pengguna untuk kontrol akses
- Pantau log untuk event penyegaran token dan status koneksi
- Batasi scope token seminimal mungkin - Hanya minta
chat:readdanchat:write - Jika buntu: Mulai ulang gateway setelah memastikan tidak ada proses lain yang memiliki sesi
Batasan
- 500 karakter per pesan (dipotong otomatis di batas kata)
- Markdown dihapus sebelum pemotongan
- Tidak ada pembatasan laju (menggunakan batas laju bawaan Twitch)
Terkait
- Channels Overview — semua channel yang didukung
- Pairing — autentikasi DM dan alur pairing
- Groups — perilaku group chat dan pembatasan mention
- Channel Routing — routing sesi untuk pesan
- Security — model akses dan hardening