Developer and self-hosted
Twitch
Twitch sohbet desteği, IRC bağlantısı üzerinden sağlanır. OpenClaw, kanallarda mesaj almak ve göndermek için bir Twitch kullanıcısı (bot hesabı) olarak bağlanır.
Paketle birlikte gelen Plugin
Daha eski bir derlemedeyseniz veya Twitch'i hariç tutan özel bir kurulum kullanıyorsanız npm paketini doğrudan kurun:
npm registry
openclaw plugins install @openclaw/twitch
Local checkout
openclaw plugins install ./path/to/local/twitch-plugin
Geçerli resmi yayın etiketini izlemek için yalın paketi kullanın. Tam sürümü yalnızca yeniden üretilebilir bir kurulum gerektiğinde sabitleyin.
Ayrıntılar: Plugin'ler
Hızlı kurulum (başlangıç)
Ensure plugin is available
Mevcut paketlenmiş OpenClaw sürümleri zaten bunu içerir. Daha eski/özel kurulumlar yukarıdaki komutlarla bunu elle ekleyebilir.
Create a Twitch bot account
Bot için ayrılmış bir Twitch hesabı oluşturun (veya mevcut bir hesabı kullanın).
Generate credentials
Twitch Token Generator kullanın:
- Bot Token seçin
chat:readvechat:writekapsamlarının seçili olduğunu doğrulayın- Client ID ve Access Token değerlerini kopyalayın
Find your Twitch user ID
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/ adresini kullanın.
Configure the token
- Ortam:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(yalnızca varsayılan hesap) - Veya yapılandırma:
channels.twitch.accessToken
İkisi de ayarlanmışsa yapılandırma önceliklidir (ortam geri dönüşü yalnızca varsayılan hesap içindir).
Start the gateway
Gateway'i yapılandırılmış kanalla başlatın.
En küçük yapılandırma:
{
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/
},
},
}
Nedir
- Gateway tarafından sahiplenilen bir Twitch kanalıdır.
- Belirleyici yönlendirme: yanıtlar her zaman Twitch'e geri gider.
- Her hesap, yalıtılmış bir oturum anahtarına eşlenir:
agent:<agentId>:twitch:<accountName>. username, botun hesabıdır (kimlik doğrulayan kişi);channel, katılınacak sohbet odasıdır.
Kurulum (ayrıntılı)
Kimlik bilgileri oluşturma
Twitch Token Generator kullanın:
- Bot Token seçin
chat:readvechat:writekapsamlarının seçili olduğunu doğrulayın- Client ID ve Access Token değerlerini kopyalayın
Botu yapılandırma
Env var (default account only)
OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Config
{
channels: {
twitch: {
enabled: true,
username: "openclaw",
accessToken: "oauth:abc123...",
clientId: "xyz789...",
channel: "vevisk",
},
},
}
Hem ortam hem de yapılandırma ayarlanmışsa yapılandırma önceliklidir.
Erişim denetimi (önerilir)
{
channels: {
twitch: {
allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
},
},
}
Kesin bir izin listesi için allowFrom tercih edin. Rol tabanlı erişim istiyorsanız bunun yerine allowedRoles kullanın.
Kullanılabilir roller: "moderator", "owner", "vip", "subscriber", "all".
Token yenileme (isteğe bağlı)
Twitch Token Generator tarafından oluşturulan token'lar otomatik olarak yenilenemez; süresi dolduğunda yeniden oluşturun.
Otomatik token yenileme için Twitch Developer Console üzerinde kendi Twitch uygulamanızı oluşturun ve yapılandırmaya ekleyin:
{
channels: {
twitch: {
clientSecret: "your_client_secret",
refreshToken: "your_refresh_token",
},
},
}
Bot, token'ları süresi dolmadan önce otomatik olarak yeniler ve yenileme olaylarını günlüğe kaydeder.
Çoklu hesap desteği
Hesap başına token'larla channels.twitch.accounts kullanın. Paylaşılan desen için Yapılandırma bölümüne bakın.
Örnek (iki kanalda bir bot hesabı):
{
channels: {
twitch: {
accounts: {
channel1: {
username: "openclaw",
accessToken: "oauth:abc123...",
clientId: "xyz789...",
channel: "vevisk",
},
channel2: {
username: "openclaw",
accessToken: "oauth:def456...",
clientId: "uvw012...",
channel: "secondchannel",
},
},
},
},
}
Erişim denetimi
User ID allowlist (most secure)
{
channels: {
twitch: {
accounts: {
default: {
allowFrom: ["123456789", "987654321"],
},
},
},
},
}
Role-based
{
channels: {
twitch: {
accounts: {
default: {
allowedRoles: ["moderator", "vip"],
},
},
},
},
}
allowFrom kesin bir izin listesidir. Ayarlandığında yalnızca bu kullanıcı kimliklerine izin verilir. Rol tabanlı erişim istiyorsanız allowFrom değerini ayarlamayın ve bunun yerine allowedRoles yapılandırın.
Disable @mention requirement
Varsayılan olarak requireMention, true değerindedir. Devre dışı bırakmak ve tüm mesajlara yanıt vermek için:
{
channels: {
twitch: {
accounts: {
default: {
requireMention: false,
},
},
},
},
}
Sorun giderme
Önce tanılama komutlarını çalıştırın:
openclaw doctor
openclaw channels status --probe
Bot does not respond to messages
- Erişim denetimini kontrol edin: Kullanıcı kimliğinizin
allowFromiçinde olduğundan emin olun veya test etmek için geçici olarakallowFromdeğerini kaldırıpallowedRoles: ["all"]ayarlayın. - Botun kanalda olduğunu kontrol edin: Bot,
channeliçinde belirtilen kanala katılmalıdır.
Token issues
"Bağlanılamadı" veya kimlik doğrulama hataları:
accessTokendeğerinin OAuth erişim token'ı değeri olduğunu doğrulayın (genellikleoauth:ön ekiyle başlar)- Token'ın
chat:readvechat:writekapsamlarına sahip olduğunu kontrol edin - Token yenileme kullanıyorsanız
clientSecretverefreshTokendeğerlerinin ayarlandığını doğrulayın
Token refresh not working
Yenileme olayları için günlükleri kontrol edin:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
"token refresh disabled (no refresh token)" görürseniz:
clientSecretsağlandığından emin olunrefreshTokensağlandığından emin olun
Yapılandırma
Hesap yapılandırması
usernamestringBot kullanıcı adı.
accessTokenstringchat:read ve chat:write içeren OAuth erişim token'ı.
clientIdstringTwitch Client ID (Token Generator veya uygulamanızdan).
channelstringrequiredKatılınacak kanal.
enabledbooleanBu hesabı etkinleştir.
clientSecretstringİsteğe bağlı: otomatik token yenileme için.
refreshTokenstringİsteğe bağlı: otomatik token yenileme için.
expiresInnumberToken sona erme süresi, saniye cinsinden.
obtainmentTimestampnumberToken'ın alındığı zaman damgası.
allowFromstring[]Kullanıcı kimliği izin listesi.
allowedRoles'Array<"moderator"requireMentionboolean@mention gerektir.
Sağlayıcı seçenekleri
channels.twitch.enabled- Kanal başlangıcını etkinleştir/devre dışı bırakchannels.twitch.username- Bot kullanıcı adı (basitleştirilmiş tek hesap yapılandırması)channels.twitch.accessToken- OAuth erişim token'ı (basitleştirilmiş tek hesap yapılandırması)channels.twitch.clientId- Twitch Client ID (basitleştirilmiş tek hesap yapılandırması)channels.twitch.channel- Katılınacak kanal (basitleştirilmiş tek hesap yapılandırması)channels.twitch.accounts.<accountName>- Çoklu hesap yapılandırması (yukarıdaki tüm hesap alanları)
Tam örnek:
{
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"],
},
},
},
},
}
Araç eylemleri
Aracı twitch çağrısını şu eylemle yapabilir:
send- Bir kanala mesaj gönder
Örnek:
{
action: "twitch",
params: {
message: "Hello Twitch!",
to: "#mychannel",
},
}
Güvenlik ve operasyon
- Token'ları parola gibi ele alın — Token'ları asla git'e commit etmeyin.
- Uzun süre çalışan botlar için otomatik token yenileme kullanın.
- Erişim denetimi için kullanıcı adları yerine kullanıcı kimliği izin listeleri kullanın.
- Token yenileme olayları ve bağlantı durumu için günlükleri izleyin.
- Token kapsamlarını en aza indirin — Yalnızca
chat:readvechat:writeisteyin. - Takılırsanız: Oturuma başka hiçbir sürecin sahip olmadığını doğruladıktan sonra Gateway'i yeniden başlatın.
Sınırlar
- Mesaj başına 500 karakter (sözcük sınırlarında otomatik olarak parçalara bölünür).
- Markdown, parçalara bölmeden önce kaldırılır.
- Hız sınırlaması yoktur (Twitch'in yerleşik hız sınırlarını kullanır).
İlgili
- Kanal Yönlendirme — mesajlar için oturum yönlendirmesi
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Gruplar — grup sohbeti davranışı ve mention geçidi
- Eşleştirme — DM kimlik doğrulaması ve eşleştirme akışı
- Güvenlik — erişim modeli ve sağlamlaştırma