Developer and self-hosted
Twitch
Twurple istemcisi aracılığıyla Twitch'in sohbet (IRC) arayüzü üzerinden Twitch sohbeti desteği. OpenClaw, bir Twitch bot hesabıyla oturum açar, yapılandırılmış her hesap için bir kanala katılır ve o kanalda yanıt verir.
Kurulum
Twitch, resmi bir Plugin olarak sunulur; çekirdek kurulumun parçası değildir.
npm kayıt deposu
openclaw plugins install @openclaw/twitchYerel çalışma kopyası
openclaw plugins install ./path/to/local/twitch-pluginplugins install, Plugin'i kaydeder ve etkinleştirir. openclaw onboard veya openclaw channels add sırasında Twitch'in seçilmesi, Plugin'i gerektiğinde kurar. Güncel sürümü takip etmek için yalnızca paket adını kullanın; tam sürümü yalnızca tekrarlanabilir kurulumlar için sabitleyin. OpenClaw 2026.4.10 veya daha yeni bir sürüm gerektirir.
Ayrıntılar: Plugin'ler
Hızlı kurulum
Plugin'i kurun
Yukarıdaki Kurulum bölümüne bakın.
Bir Twitch bot hesabı oluşturun
Bot için özel bir Twitch hesabı oluşturun (veya mevcut bir hesabı kullanın).
Kimlik bilgilerini oluşturun
Twitch Token Generator aracını kullanın:
- Bot Token seçeneğini seçin
chat:readvechat:writekapsamlarının seçili olduğunu doğrulayın- Client ID ve Access Token değerlerini kopyalayın
Twitch kullanıcı kimliğinizi bulun
Bir kullanıcı adını Twitch kullanıcı kimliğine dönüştürmek için https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ aracını kullanın.
Belirteci yapılandırın
- Ortam değişkeni:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(yalnızca varsayılan hesap) - Veya yapılandırma:
channels.twitch.accessToken
Her ikisi de ayarlanırsa yapılandırma önceliklidir (ortam değişkeni yalnızca varsayılan hesap için yedek seçenektir).
Gateway'i başlatın
openclaw gateway runAsgari yapılandırma:
{ channels: { twitch: { enabled: true, username: "openclaw", // Botun Twitch hesabı (kimlik doğrulaması yapar) accessToken: "oauth:abc123...", // OAuth erişim belirteci (veya OPENCLAW_TWITCH_ACCESS_TOKEN ortam değişkenini kullanın) clientId: "xyz789...", // Token Generator tarafından sağlanan istemci kimliği channel: "yourchannel", // Katılınacak Twitch kanalının sohbeti (zorunlu) allowFrom: ["123456789"], // (önerilir) Yalnızca Twitch kullanıcı kimliğiniz }, },}Nedir?
- Gateway'e ait bir Twitch kanalıdır.
- Belirlenimci yönlendirme: yanıtlar her zaman iletinin geldiği Twitch kanalına geri gönderilir.
- Katılınan her kanal, yalıtılmış bir grup oturumu anahtarıyla eşleşir:
agent:<agentId>:twitch:group:<channel>. username, botun hesabıdır (kimlik doğrulaması yapan hesap);channelise katılınacak sohbet odasıdır. Her hesap girdisi tam olarak bir kanala katılır.- Belirteçler
oauth:önekiyle veya bu önek olmadan çalışır; OpenClaw her iki biçimi de normalleştirir (kurulum sihirbazıoauth:biçimini bekler).
Belirteç yenileme (isteğe bağlı)
Twitch Token Generator tarafından oluşturulan belirteçler OpenClaw tarafından yenilenemez; süreleri dolduğunda yeniden oluşturun (birkaç saat geçerlidirler; uygulama kaydı gerekmez).
Otomatik yenileme için Twitch Developer Console üzerinden kendi uygulamanızı oluşturun ve şunları ekleyin:
{ channels: { twitch: { clientSecret: "your_client_secret", refreshToken: "your_refresh_token", }, },}Her ikisi de ayarlandığında Plugin, belirteçleri süreleri dolmadan yenileyen bir kimlik doğrulama sağlayıcısı kullanır ve her yenilemeyi günlüğe kaydeder. refreshToken olmadan token refresh disabled (no refresh token) iletisini günlüğe kaydeder; clientSecret olmadan statik (yenilenmeyen) belirtece geri döner.
Çoklu hesap desteği
Her hesaba özgü kimlik bilgileriyle channels.twitch.accounts kullanın. Ortak kalıp için Yapılandırma bölümüne bakın.
Örnek (iki kanalda tek bot hesabı):
{ channels: { twitch: { accounts: { channel1: { username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "yourchannel", }, channel2: { username: "openclaw", accessToken: "oauth:def456...", clientId: "uvw012...", channel: "secondchannel", }, }, }, },}Erişim denetimi
allowFrom, Twitch kullanıcı kimliklerinden oluşan katı bir izin listesidir. Ayarlandığında allowedRoles yok sayılır; bunun yerine rol tabanlı erişimi kullanmak için allowFrom değerini ayarlamayın.
Kullanılabilir roller: "moderator", "owner", "vip", "subscriber", "all".
Kullanıcı kimliği izin listesi (en güvenli)
{ channels: { twitch: { accounts: { default: { allowFrom: ["123456789", "987654321"], }, }, }, },}Rol tabanlı
{ channels: { twitch: { accounts: { default: { allowedRoles: ["moderator", "vip"], }, }, }, },}@bahsetme gereksinimini devre dışı bırak
Varsayılan olarak requireMention, true değerindedir. İzin verilen tüm iletilere yanıt vermek için:
{ channels: { twitch: { accounts: { default: { requireMention: false, }, }, }, },}Sorun giderme
Öncelikle tanılama komutlarını çalıştırın:
openclaw doctoropenclaw channels status --probeBot iletilere yanıt vermiyor
- Erişim denetimini kontrol edin: Kullanıcı kimliğinizin
allowFromiçinde olduğundan emin olun veya test etmek içinallowFromdeğerini geçici olarak kaldırıpallowedRoles: ["all"]ayarlayın. - Bahsetme geçidini kontrol edin:
requireMention: true(varsayılan) olduğunda iletiler botun kullanıcı adından @bahsetmelidir. - Botun kanalda olduğunu kontrol edin: Bot yalnızca
channeliçinde adı belirtilen kanala katılır.
Belirteç sorunları
"Bağlantı kurulamadı" veya kimlik doğrulama hataları:
accessTokendeğerinin OAuth erişim belirteci olduğundan emin olun (oauth:öneki isteğe bağlıdır)- Belirtecin
chat:readvechat:writekapsamlarına sahip olduğunu kontrol edin - Belirteç yenilemeyi kullanıyorsanız
clientSecretverefreshTokendeğerlerinin ayarlandığını doğrulayın
Belirteç yenileme çalışmıyor
Yenileme olayları için günlükleri kontrol edin:
mybot için ortam belirteci kaynağı kullanılıyor123456 kullanıcısının erişim belirteci yenilendi (14400 sn içinde sona erecek)token refresh disabled (no refresh token) iletisini görürseniz:
clientSecretdeğerinin sağlandığından emin olunrefreshTokendeğerinin sağlandığından emin olun
Yapılandırma
Hesap yapılandırması
usernamestringrequiredBot kullanıcı adı (kimlik doğrulaması yapan hesap).
accessTokenstringrequiredchat:read ve chat:write kapsamlarına sahip OAuth erişim belirteci (varsayılan hesap için yapılandırma veya ortam değişkeni).
clientIdstringrequiredTwitch istemci kimliği (Token Generator veya uygulamanız tarafından sağlanır). Şemada isteğe bağlıdır ancak bağlantı kurmak için zorunludur.
channelstringrequiredKatılınacak kanal.
enabledbooleandefault: trueBu hesabı etkinleştirin.
clientSecretstringİsteğe bağlı: otomatik belirteç yenileme için.
refreshTokenstringİsteğe bağlı: otomatik belirteç yenileme için.
expiresInnumberBelirtecin saniye cinsinden sona erme süresi (yenileme takibi).
obtainmentTimestampnumberBelirtecin alındığı zaman damgası (yenileme takibi).
allowFromstring[]Kullanıcı kimliği izin listesi. Ayarlandığında roller yok sayılır.
allowedRoles'Array<"moderator"requireMentionbooleandefault: trueBotu tetiklemek için @bahsetme gerektir.
responsePrefixstringBu hesap için giden yanıt öneki geçersiz kılma değeri.
Sağlayıcı seçenekleri
channels.twitch.enabled- Kanal başlangıcını etkinleştirir/devre dışı bırakırchannels.twitch.username/accessToken/clientId/channel- Basitleştirilmiş tek hesap yapılandırması (örtükdefaulthesap;accounts.defaultdeğerinden önceliklidir)channels.twitch.accounts.<accountName>- Çoklu hesap yapılandırması (yukarıdaki tüm hesap alanları)channels.twitch.defaultAccount- Varsayılan olacak hesap adıchannels.twitch.markdown.tables- Markdown tablo oluşturma modu (off|bullets|code|block)
Tam örnek:
{ channels: { twitch: { enabled: true, username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "yourchannel", clientSecret: "secret123...", refreshToken: "refresh456...", allowFrom: ["123456789"], accounts: { second: { username: "mybot", accessToken: "oauth:def456...", clientId: "uvw012...", channel: "your_channel", enabled: true, expiresIn: 14400, obtainmentTimestamp: 1706092800000, allowedRoles: ["moderator"], }, }, }, },}Araç eylemleri
Aracı, ileti aracının send eylemi üzerinden Twitch iletileri gönderebilir:
{ channel: "twitch", action: "send", to: "#mychannel", message: "Merhaba Twitch!",}to isteğe bağlıdır ve varsayılan olarak hesabın yapılandırılmış channel değerini kullanır.
Güvenlik ve işletim
- Belirteçlere parola gibi davranın - belirteçleri asla git'e kaydetmeyin.
- Uzun süre çalışan botlar için otomatik belirteç yenilemeyi kullanın.
- Erişim denetimi için kullanıcı adları yerine kullanıcı kimliği izin listelerini kullanın.
- Belirteç yenileme olayları ve bağlantı durumu için günlükleri izleyin.
- Belirteç kapsamlarını asgari düzeyde tutun - yalnızca
chat:readvechat:writekapsamlarını isteyin. - Takılırsanız: oturumun başka bir sürece ait olmadığını doğruladıktan sonra Gateway'i yeniden başlatın.
Sınırlar
- İleti başına 500 karakter; daha uzun yanıtlar sözcük sınırlarından parçalara ayrılır.
- Gönderimden önce Markdown kaldırılır (Twitch sohbeti düz metindir; yeni satırlar boşluğa dönüştürülür).
- OpenClaw kendi hız sınırlamasını eklemez; Twitch hız sınırlarını Twurple sohbet istemcisi yönetir.
İlgili konular
- Kanal Yönlendirme — iletiler için oturum yönlendirmesi
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Gruplar — grup sohbeti davranışı ve bahsetme geçidi
- Eşleştirme — doğrudan ileti kimlik doğrulaması ve eşleştirme akışı
- Güvenlik — erişim modeli ve sağlamlaştırma