Skip to main content
Dukungan obrolan Twitch melalui antarmuka obrolan (IRC) Twitch menggunakan klien Twurple. OpenClaw masuk sebagai akun bot Twitch, bergabung ke satu channel per akun yang dikonfigurasi, dan membalas di channel tersebut.

Instalasi

Twitch disediakan sebagai plugin resmi; plugin ini bukan bagian dari instalasi inti.
plugins install mendaftarkan dan mengaktifkan plugin. Memilih Twitch saat openclaw onboard atau openclaw channels add akan menginstalnya sesuai kebutuhan. Gunakan nama paket tanpa tambahan untuk mengikuti rilis saat ini; sematkan versi persis hanya untuk instalasi yang dapat direproduksi. Memerlukan OpenClaw 2026.4.10 atau yang lebih baru. Detail: Plugin

Penyiapan cepat

1

Instal plugin

Lihat Instalasi 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 cakupan 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

  • Lingkungan: OPENCLAW_TWITCH_ACCESS_TOKEN=... (hanya akun default)
  • Atau konfigurasi: channels.twitch.accessToken
Jika keduanya ditetapkan, konfigurasi diprioritaskan (variabel lingkungan hanya menjadi cadangan untuk akun default).
6

Mulai Gateway

Tambahkan kontrol akses (allowFrom atau allowedRoles) untuk mencegah pengguna yang tidak berwenang memicu bot. requireMention memiliki nilai default true.
Konfigurasi minimal:

Apa ini

  • Channel Twitch yang dimiliki oleh Gateway.
  • Perutean deterministik: balasan selalu dikirim kembali ke channel Twitch asal pesan.
  • Setiap channel yang dimasuki dipetakan ke kunci sesi grup terisolasi agent:<agentId>:twitch:group:<channel>.
  • username adalah akun bot (yang melakukan autentikasi), sedangkan channel adalah ruang obrolan yang akan dimasuki. Satu entri akun bergabung ke tepat satu channel.
  • Token berfungsi dengan atau tanpa prefiks oauth:; OpenClaw menormalisasi kedua bentuk tersebut (wizard penyiapan mengharapkan bentuk oauth:).

Durabilitas pesan masuk

OpenClaw memasukkan setiap pesan obrolan Twitch yang diterima ke antrean secara persisten sebelum pengiriman normal. Pesan yang tertunda atau dapat dicoba ulang tetap tersedia setelah Gateway dimulai ulang, tetap diserialisasi untuk channel yang dikonfigurasi, dan menggunakan ID pesan Twitch untuk mencegah entri antrean duplikat selama catatan penyelesaian aktif atau yang dipertahankan masih ada. Obrolan Twitch tidak memutar ulang PRIVMSG setelah klien menerimanya. Hal ini melindungi rentang kegagalan antara penerimaan lokal dan pengiriman, tetapi tidak dapat memulihkan pesan yang terlewat sebelum penerimaan persisten. Jika penambahan ke antrean gagal, OpenClaw mencatat kegagalan tersebut; penyambungan ulang tidak meminta Twitch mengirim ulang pesan itu.

Penyegaran token (opsional)

Token dari Twitch Token Generator tidak dapat disegarkan oleh OpenClaw—buat ulang ketika kedaluwarsa (token berlaku selama beberapa jam; tidak memerlukan pendaftaran aplikasi). Untuk penyegaran otomatis, buat aplikasi Anda sendiri di Twitch Developer Console, lalu tambahkan:
Jika keduanya ditetapkan, plugin menggunakan penyedia autentikasi dengan penyegaran yang memperbarui token sebelum kedaluwarsa dan mencatat setiap penyegaran. Tanpa refreshToken, plugin mencatat token refresh disabled (no refresh token); tanpa clientSecret, plugin kembali menggunakan token statis (tanpa penyegaran).

Dukungan multiakun

Gunakan channels.twitch.accounts dengan kredensial per akun. Lihat Konfigurasi untuk pola bersama. Contoh (satu akun bot di dua channel):
Setiap entri akun memerlukan accessToken tersendiri (variabel lingkungan hanya mencakup akun default). Satu akun bergabung ke tepat satu channel, sehingga bergabung ke dua channel memerlukan dua akun. channels.twitch.defaultAccount menentukan akun yang menjadi default.

Kontrol akses

allowFrom adalah daftar izin ketat berisi ID pengguna Twitch. Jika ditetapkan, allowedRoles diabaikan; biarkan allowFrom tidak ditetapkan untuk menggunakan 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 Anda menggunakan konverter nama pengguna ke ID.

Pemecahan masalah

Pertama, jalankan perintah diagnostik:
  • Periksa kontrol akses: Pastikan ID pengguna Anda ada di allowFrom, atau hapus sementara allowFrom dan tetapkan allowedRoles: ["all"] untuk melakukan pengujian.
  • Periksa gerbang penyebutan: Dengan requireMention: true (default), pesan harus menyebut nama pengguna bot dengan @mention.
  • Pastikan bot berada di channel: Bot hanya bergabung ke channel yang disebutkan dalam channel.
“Gagal terhubung” atau kesalahan autentikasi:
  • Pastikan accessToken adalah nilai token akses OAuth (prefiks oauth: bersifat opsional)
  • Pastikan token memiliki cakupan chat:read dan chat:write
  • Jika menggunakan penyegaran token, pastikan clientSecret dan refreshToken ditetapkan
Periksa log untuk peristiwa penyegaran:
Jika Anda melihat token refresh disabled (no refresh token):
  • Pastikan clientSecret disediakan
  • Pastikan refreshToken disediakan

Konfigurasi

Konfigurasi akun

string
wajib
Nama pengguna bot (akun yang melakukan autentikasi).
string
wajib
Token akses OAuth dengan chat:read dan chat:write (konfigurasi atau lingkungan untuk akun default).
string
wajib
ID Klien Twitch (dari Token Generator atau aplikasi Anda). Opsional dalam skema, tetapi wajib untuk terhubung.
string
wajib
Channel yang akan dimasuki.
boolean
default:"true"
Aktifkan akun ini.
string
Opsional: untuk penyegaran token otomatis.
string
Opsional: untuk penyegaran token otomatis.
number
Masa berlaku token dalam detik (pelacakan penyegaran).
number
Stempel waktu saat token diperoleh (pelacakan penyegaran).
string[]
Daftar izin ID pengguna. Jika ditetapkan, peran diabaikan.
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Kontrol akses berbasis peran.
boolean
default:"true"
Wajibkan @mention untuk memicu bot.
string
Penggantian prefiks respons keluar untuk akun ini.

Opsi penyedia

  • channels.twitch.enabled - Aktifkan/nonaktifkan permulaan channel
  • channels.twitch.username / accessToken / clientId / channel - Konfigurasi akun tunggal yang disederhanakan (akun default implisit; diprioritaskan daripada accounts.default)
  • channels.twitch.accounts.<accountName> - Konfigurasi multiakun (semua bidang akun di atas)
  • channels.twitch.defaultAccount - Nama akun yang menjadi default
  • channels.twitch.markdown.tables - Mode perenderan tabel Markdown (off | bullets | code | block)
Contoh lengkap:

Tindakan alat

Agen dapat mengirim pesan Twitch melalui tindakan send pada alat pesan:
to bersifat opsional dan secara default menggunakan channel yang dikonfigurasi untuk akun.

Keamanan dan operasi

  • Perlakukan token seperti kata sandi - jangan pernah melakukan commit token ke git.
  • Gunakan penyegaran token otomatis untuk bot yang berjalan dalam waktu lama.
  • Gunakan daftar izin ID pengguna alih-alih nama pengguna untuk kontrol akses.
  • Pantau log untuk peristiwa penyegaran token dan status koneksi.
  • Batasi cakupan token seminimal mungkin - hanya minta chat:read dan chat:write.
  • Jika mengalami kendala: mulai ulang Gateway setelah memastikan tidak ada proses lain yang memiliki sesi tersebut.

Batas

  • 500 karakter per pesan; balasan yang lebih panjang dibagi pada batas kata.
  • Markdown dihapus sebelum dikirim (obrolan Twitch berupa teks biasa; baris baru diubah menjadi spasi).
  • OpenClaw tidak menambahkan pembatasan laju sendiri; klien obrolan Twurple menangani batas laju Twitch.

Terkait