Przejdź do głównej treści

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Obsługa czatu Twitch przez połączenie IRC. OpenClaw łączy się jako użytkownik Twitch (konto bota), aby odbierać i wysyłać wiadomości na kanałach.

Dołączony Plugin

Twitch jest dostarczany jako dołączony Plugin w bieżących wydaniach OpenClaw, więc zwykłe kompilacje pakietowe nie wymagają osobnej instalacji.
Jeśli używasz starszej kompilacji albo instalacji niestandardowej, która wyklucza Twitch, zainstaluj pakiet npm bezpośrednio:
openclaw plugins install @openclaw/twitch
Użyj samego pakietu, aby podążać za bieżącym oficjalnym tagiem wydania. Przypnij dokładną wersję tylko wtedy, gdy potrzebujesz odtwarzalnej instalacji. Szczegóły: Pluginy

Szybka konfiguracja (dla początkujących)

1

Upewnij się, że Plugin jest dostępny

Bieżące pakietowe wydania OpenClaw już go zawierają. Starsze/niestandardowe instalacje mogą dodać go ręcznie za pomocą powyższych poleceń.
2

Utwórz konto bota Twitch

Utwórz dedykowane konto Twitch dla bota (albo użyj istniejącego konta).
3

Wygeneruj dane uwierzytelniające

Użyj Twitch Token Generator:
  • Wybierz Bot Token
  • Sprawdź, czy wybrane są zakresy chat:read i chat:write
  • Skopiuj Client ID i Access Token
4

Znajdź swój identyfikator użytkownika Twitch

Użyj https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/, aby przekonwertować nazwę użytkownika na identyfikator użytkownika Twitch.
5

Skonfiguruj token

  • Env: OPENCLAW_TWITCH_ACCESS_TOKEN=... (tylko konto domyślne)
  • Albo konfiguracja: channels.twitch.accessToken
Jeśli ustawiono oba, konfiguracja ma pierwszeństwo (awaryjne użycie env dotyczy tylko konta domyślnego).
6

Uruchom gateway

Uruchom gateway ze skonfigurowanym kanałem.
Dodaj kontrolę dostępu (allowFrom lub allowedRoles), aby uniemożliwić nieuprawnionym użytkownikom wyzwalanie bota. requireMention domyślnie ma wartość true.
Minimalna konfiguracja:
{
  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/
    },
  },
}

Czym to jest

  • Kanał Twitch należący do Gateway.
  • Deterministyczne kierowanie: odpowiedzi zawsze wracają do Twitch.
  • Każde konto mapuje się na izolowany klucz sesji agent:<agentId>:twitch:<accountName>.
  • username to konto bota (to, które się uwierzytelnia), a channel to pokój czatu, do którego należy dołączyć.

Konfiguracja (szczegółowa)

Wygeneruj dane uwierzytelniające

Użyj Twitch Token Generator:
  • Wybierz Bot Token
  • Sprawdź, czy wybrane są zakresy chat:read i chat:write
  • Skopiuj Client ID i Access Token
Ręczna rejestracja aplikacji nie jest potrzebna. Tokeny wygasają po kilku godzinach.

Skonfiguruj bota

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Jeśli ustawiono zarówno env, jak i konfigurację, konfiguracja ma pierwszeństwo.

Kontrola dostępu (zalecana)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Preferuj allowFrom jako ścisłą listę dozwolonych. Zamiast tego użyj allowedRoles, jeśli chcesz kontroli dostępu opartej na rolach. Dostępne role: "moderator", "owner", "vip", "subscriber", "all".
Dlaczego identyfikatory użytkowników? Nazwy użytkowników mogą się zmieniać, co umożliwia podszywanie się. Identyfikatory użytkowników są stałe.Znajdź swój identyfikator użytkownika Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (przekonwertuj swoją nazwę użytkownika Twitch na identyfikator)

Odświeżanie tokenu (opcjonalne)

Tokenów z Twitch Token Generator nie można odświeżać automatycznie - wygeneruj je ponownie po wygaśnięciu. Aby automatycznie odświeżać token, utwórz własną aplikację Twitch w Twitch Developer Console i dodaj do konfiguracji:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
Bot automatycznie odświeża tokeny przed wygaśnięciem i zapisuje zdarzenia odświeżania w logach.

Obsługa wielu kont

Użyj channels.twitch.accounts z tokenami dla poszczególnych kont. Wspólny wzorzec opisano w sekcji Konfiguracja. Przykład (jedno konto bota na dwóch kanałach):
{
  channels: {
    twitch: {
      accounts: {
        channel1: {
          username: "openclaw",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "vevisk",
        },
        channel2: {
          username: "openclaw",
          accessToken: "oauth:def456...",
          clientId: "uvw012...",
          channel: "secondchannel",
        },
      },
    },
  },
}
Każde konto potrzebuje własnego tokenu (jeden token na kanał).

Kontrola dostępu

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

Rozwiązywanie problemów

Najpierw uruchom polecenia diagnostyczne:
openclaw doctor
openclaw channels status --probe
  • Sprawdź kontrolę dostępu: Upewnij się, że Twój identyfikator użytkownika znajduje się w allowFrom, albo tymczasowo usuń allowFrom i ustaw allowedRoles: ["all"], aby przetestować.
  • Sprawdź, czy bot jest na kanale: Bot musi dołączyć do kanału określonego w channel.
“Nie udało się połączyć” lub błędy uwierzytelniania:
  • Sprawdź, czy accessToken jest wartością tokenu dostępu OAuth (zwykle zaczyna się od prefiksu oauth:)
  • Sprawdź, czy token ma zakresy chat:read i chat:write
  • Jeśli używasz odświeżania tokenu, sprawdź, czy ustawiono clientSecret i refreshToken
Sprawdź logi pod kątem zdarzeń odświeżania:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Jeśli widzisz “token refresh disabled (no refresh token)”:
  • Upewnij się, że podano clientSecret
  • Upewnij się, że podano refreshToken

Konfiguracja

Konfiguracja konta

username
string
Nazwa użytkownika bota.
accessToken
string
Token dostępu OAuth z chat:read i chat:write.
clientId
string
Twitch Client ID (z Token Generator lub Twojej aplikacji).
channel
string
wymagane
Kanał, do którego należy dołączyć.
enabled
boolean
domyślnie:"true"
Włącz to konto.
clientSecret
string
Opcjonalnie: do automatycznego odświeżania tokenu.
refreshToken
string
Opcjonalnie: do automatycznego odświeżania tokenu.
expiresIn
number
Wygaśnięcie tokenu w sekundach.
obtainmentTimestamp
number
Znacznik czasu uzyskania tokenu.
allowFrom
string[]
Lista dozwolonych identyfikatorów użytkowników.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Kontrola dostępu oparta na rolach.
requireMention
boolean
domyślnie:"true"
Wymagaj @wzmianki.

Opcje dostawcy

  • channels.twitch.enabled - Włącz/wyłącz uruchamianie kanału
  • channels.twitch.username - Nazwa użytkownika bota (uproszczona konfiguracja jednego konta)
  • channels.twitch.accessToken - Token dostępu OAuth (uproszczona konfiguracja jednego konta)
  • channels.twitch.clientId - Twitch Client ID (uproszczona konfiguracja jednego konta)
  • channels.twitch.channel - Kanał, do którego należy dołączyć (uproszczona konfiguracja jednego konta)
  • channels.twitch.accounts.<accountName> - Konfiguracja wielu kont (wszystkie pola konta powyżej)
Pełny przykład:
{
  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"],
        },
      },
    },
  },
}

Akcje narzędzia

Agent może wywołać twitch z akcją:
  • send - Wyślij wiadomość do kanału
Przykład:
{
  action: "twitch",
  params: {
    message: "Hello Twitch!",
    to: "#mychannel",
  },
}

Bezpieczeństwo i operacje

  • Traktuj tokeny jak hasła — nigdy nie commituj tokenów do git.
  • Używaj automatycznego odświeżania tokenów dla długo działających botów.
  • Używaj list dozwolonych identyfikatorów użytkowników zamiast nazw użytkowników do kontroli dostępu.
  • Monitoruj logi pod kątem zdarzeń odświeżania tokenu i stanu połączenia.
  • Ogranicz zakres tokenów do minimum — żądaj tylko chat:read i chat:write.
  • Jeśli utkniesz: uruchom ponownie gateway po potwierdzeniu, że żaden inny proces nie jest właścicielem sesji.

Limity

  • 500 znaków na wiadomość (automatycznie dzielone na fragmenty na granicach słów).
  • Markdown jest usuwany przed dzieleniem na fragmenty.
  • Brak ograniczania częstotliwości (używa wbudowanych limitów Twitch).

Powiązane