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

bash
openclaw plugins install @openclaw/twitch

Yerel çalışma kopyası

bash
openclaw plugins install ./path/to/local/twitch-plugin

plugins 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:read ve chat:write kapsamları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

    bash
    openclaw gateway run
  • Asgari yapılandırma:

    json5
    {  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); channel ise 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:

    json5
    {  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ı):

    json5
    {  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)

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

    Rol tabanlı

    json5
    {  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:

    json5
    {  channels: {    twitch: {      accounts: {        default: {          requireMention: false,        },      },    },  },}

    Sorun giderme

    Öncelikle tanılama komutlarını çalıştırın:

    bash
    openclaw doctoropenclaw channels status --probe
    Bot iletilere yanıt vermiyor
    • Erişim denetimini kontrol edin: Kullanıcı kimliğinizin allowFrom içinde olduğundan emin olun veya test etmek için allowFrom değerini geçici olarak kaldırıp allowedRoles: ["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 channel içinde adı belirtilen kanala katılır.
    Belirteç sorunları

    "Bağlantı kurulamadı" veya kimlik doğrulama hataları:

    • accessToken değerinin OAuth erişim belirteci olduğundan emin olun (oauth: öneki isteğe bağlıdır)
    • Belirtecin chat:read ve chat:write kapsamlarına sahip olduğunu kontrol edin
    • Belirteç yenilemeyi kullanıyorsanız clientSecret ve refreshToken değerlerinin ayarlandığını doğrulayın
    Belirteç yenileme çalışmıyor

    Yenileme olayları için günlükleri kontrol edin:

    text
    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:

    • clientSecret değerinin sağlandığından emin olun
    • refreshToken değerinin sağlandığından emin olun

    Yapılandırma

    Hesap yapılandırması

    usernamestringrequired

    Bot kullanıcı adı (kimlik doğrulaması yapan hesap).

    accessTokenstringrequired

    chat:read ve chat:write kapsamlarına sahip OAuth erişim belirteci (varsayılan hesap için yapılandırma veya ortam değişkeni).

    clientIdstringrequired

    Twitch 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.

    channelstringrequired

    Katılınacak kanal.

    enabledbooleandefault: true

    Bu hesabı etkinleştirin.

    clientSecretstring

    İsteğe bağlı: otomatik belirteç yenileme için.

    refreshTokenstring

    İsteğe bağlı: otomatik belirteç yenileme için.

    expiresInnumber

    Belirtecin saniye cinsinden sona erme süresi (yenileme takibi).

    obtainmentTimestampnumber

    Belirtecin alındığı zaman damgası (yenileme takibi).

    allowFromstring[]

    Kullanıcı kimliği izin listesi. Ayarlandığında roller yok sayılır.

    allowedRoles'Array<"moderator"
    requireMentionbooleandefault: true

    Botu tetiklemek için @bahsetme gerektir.

    responsePrefixstring

    Bu 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ır
    • channels.twitch.username / accessToken / clientId / channel - Basitleştirilmiş tek hesap yapılandırması (örtük default hesap; accounts.default değ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:

    json5
    {  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:

    json5
    {  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:read ve chat:write kapsamları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

    Was this useful?
    On this page

    On this page