Twitch
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.Plugin dołączony do pakietu
Twitch jest dostarczany jako plugin dołączony do pakietu w aktualnych wydaniach OpenClaw, więc zwykłe spakowane buildy nie wymagają osobnej instalacji. Jeśli używasz starszego buildu lub niestandardowej instalacji, która nie zawiera Twitch, zainstaluj go ręcznie: Instalacja przez CLI (rejestr npm):Szybka konfiguracja (dla początkujących)
- Upewnij się, że plugin Twitch jest dostępny.
- Aktualne spakowane wydania OpenClaw już go zawierają.
- W starszych/niestandardowych instalacjach można dodać go ręcznie za pomocą powyższych poleceń.
- Utwórz dedykowane konto Twitch dla bota (lub użyj istniejącego konta).
- Wygeneruj dane uwierzytelniające: Twitch Token Generator
- Wybierz Bot Token
- Sprawdź, czy zaznaczone są zakresy
chat:readichat:write - Skopiuj Client ID i Access Token
- Znajdź swój identyfikator użytkownika Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Skonfiguruj token:
- Zmienna środowiskowa:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(tylko konto domyślne) - Albo konfiguracja:
channels.twitch.accessToken - Jeśli ustawione są oba, konfiguracja ma pierwszeństwo (fallback do zmiennej środowiskowej działa tylko dla konta domyślnego).
- Zmienna środowiskowa:
- Uruchom gateway.
allowFrom lub allowedRoles), aby zapobiec wyzwalaniu bota przez nieautoryzowanych użytkowników. requireMention domyślnie ma wartość true.
Minimalna konfiguracja:
Czym to jest
- Kanał Twitch należący do Gateway.
- Deterministyczny routing: odpowiedzi zawsze wracają do Twitch.
- Każde konto mapuje się na izolowany klucz sesji
agent:<agentId>:twitch:<accountName>. usernameto konto bota (które się uwierzytelnia), achannelokreśla, do którego pokoju czatu dołączyć.
Konfiguracja (szczegółowo)
Generowanie danych uwierzytelniających
Użyj Twitch Token Generator:- Wybierz Bot Token
- Sprawdź, czy zaznaczone są zakresy
chat:readichat:write - Skopiuj Client ID i Access Token
Konfiguracja bota
Zmienna środowiskowa (tylko konto domyślne):Kontrola dostępu (zalecane)
allowFrom dla twardej listy dozwolonych. Zamiast tego użyj allowedRoles, jeśli chcesz dostępu opartego 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/ (Convert your Twitch username to ID)
Odświeżanie tokena (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:Obsługa wielu kont
Użyjchannels.twitch.accounts z tokenami per konto. Wspólny wzorzec opisano w gateway/configuration.
Przykład (jedno konto bota na dwóch kanałach):
Kontrola dostępu
Ograniczenia oparte na rolach
Lista dozwolonych według identyfikatora użytkownika (najbezpieczniejsze)
Dostęp oparty na rolach (alternatywa)
allowFrom to twarda lista dozwolonych. Gdy jest ustawione, dozwolone są tylko te identyfikatory użytkowników.
Jeśli chcesz dostępu opartego na rolach, pozostaw allowFrom nieustawione i zamiast tego skonfiguruj allowedRoles:
Wyłączenie wymagania @mention
DomyślnierequireMention ma wartość true. Aby to wyłączyć i odpowiadać na wszystkie wiadomości:
Rozwiązywanie problemów
Najpierw uruchom polecenia diagnostyczne:Bot nie odpowiada na wiadomości
Sprawdź kontrolę dostępu: Upewnij się, że Twój identyfikator użytkownika jest wallowFrom, 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.
Problemy z tokenem
„Failed to connect” lub błędy uwierzytelniania:- Sprawdź, czy
accessTokenjest wartością tokena dostępu OAuth (zwykle zaczyna się od prefiksuoauth:) - Sprawdź, czy token ma zakresy
chat:readichat:write - Jeśli używasz odświeżania tokena, sprawdź, czy ustawione są
clientSecretirefreshToken
Odświeżanie tokena nie działa
Sprawdź logi pod kątem zdarzeń odświeżania:- Upewnij się, że podano
clientSecret - Upewnij się, że podano
refreshToken
Konfiguracja
Konfiguracja konta:username- nazwa użytkownika botaaccessToken- token dostępu OAuth z zakresamichat:readichat:writeclientId- Twitch Client ID (z Token Generator lub z Twojej aplikacji)channel- kanał, do którego należy dołączyć (wymagane)enabled- włącza to konto (domyślnie:true)clientSecret- opcjonalne: do automatycznego odświeżania tokenarefreshToken- opcjonalne: do automatycznego odświeżania tokenaexpiresIn- czas wygaśnięcia tokena w sekundachobtainmentTimestamp- znacznik czasu uzyskania tokenaallowFrom- lista dozwolonych identyfikatorów użytkownikówallowedRoles- kontrola dostępu oparta na rolach ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- wymaga @mention (domyślnie:true)
channels.twitch.enabled- włączanie/wyłączanie uruchamiania kanałuchannels.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)
Akcje narzędzia
Agent może wywołaćtwitch z akcją:
send- wyślij wiadomość na kanał
Bezpieczeństwo i operacje
- Traktuj tokeny jak hasła - nigdy nie zapisuj tokenów w git
- Używaj automatycznego odświeżania tokena dla długotrwale działających botów
- Używaj list dozwolonych opartych na identyfikatorach użytkowników zamiast nazw użytkowników do kontroli dostępu
- Monitoruj logi pod kątem zdarzeń odświeżania tokena i stanu połączenia
- Minimalizuj zakresy tokenów - żądaj tylko
chat:readichat: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ść (automatyczny podział na fragmenty na granicach słów)
- Markdown jest usuwany przed podziałem na fragmenty
- Brak ograniczania szybkości (wykorzystywane są wbudowane limity szybkości Twitch)
Powiązane
- Channels Overview — wszystkie obsługiwane kanały
- Pairing — uwierzytelnianie wiadomości prywatnych i przepływ parowania
- Groups — zachowanie czatów grupowych i bramkowanie wzmianką
- Channel Routing — routing sesji dla wiadomości
- Security — model dostępu i utwardzanie