Developer and self-hosted
Twitch
Twitch-chatondersteuning via de chatinterface (IRC) van Twitch met behulp van de Twurple-client. OpenClaw meldt zich aan met een Twitch-botaccount, neemt per geconfigureerd account deel aan één kanaal en antwoordt in dat kanaal.
Installeren
Twitch wordt geleverd als een officiële Plugin; het maakt geen deel uit van de kerninstallatie.
npm-register
openclaw plugins install @openclaw/twitchLokale checkout
openclaw plugins install ./path/to/local/twitch-pluginplugins install registreert en activeert de Plugin. Als je Twitch kiest tijdens openclaw onboard of openclaw channels add, wordt deze op aanvraag geïnstalleerd. Gebruik alleen de pakketnaam om de huidige release te volgen; zet alleen een exacte versie vast voor reproduceerbare installaties. Vereist OpenClaw 2026.4.10 of nieuwer.
Details: Plugins
Snel instellen
De Plugin installeren
Zie Installeren hierboven.
Een Twitch-botaccount maken
Maak een speciaal Twitch-account voor de bot (of gebruik een bestaand account).
Aanmeldgegevens genereren
Gebruik Twitch Token Generator:
- Selecteer Bot Token
- Controleer of de bereiken
chat:readenchat:writezijn geselecteerd - Kopieer de Client ID en het Access Token
Je Twitch-gebruikers-ID vinden
Gebruik https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ om een gebruikersnaam naar een Twitch-gebruikers-ID om te zetten.
Het token configureren
- Omgevingsvariabele:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(alleen het standaardaccount) - Of configuratie:
channels.twitch.accessToken
Als beide zijn ingesteld, heeft de configuratie voorrang (de omgevingsvariabele dient alleen als terugvaloptie voor het standaardaccount).
De Gateway starten
openclaw gateway runMinimale configuratie:
{ channels: { twitch: { enabled: true, username: "openclaw", // Twitch-account van de bot (verifieert de identiteit) accessToken: "oauth:abc123...", // OAuth-toegangstoken (of gebruik de omgevingsvariabele OPENCLAW_TWITCH_ACCESS_TOKEN) clientId: "xyz789...", // Client-ID uit Token Generator channel: "yourchannel", // De chat van het Twitch-kanaal waaraan moet worden deelgenomen (verplicht) allowFrom: ["123456789"], // (aanbevolen) Alleen je Twitch-gebruikers-ID }, },}Wat het is
- Een Twitch-kanaal dat door de Gateway wordt beheerd.
- Deterministische routering: antwoorden gaan altijd terug naar het Twitch-kanaal waaruit het bericht afkomstig is.
- Elk kanaal waaraan wordt deelgenomen, wordt gekoppeld aan een geïsoleerde groepssessiesleutel
agent:<agentId>:twitch:group:<channel>. usernameis het account van de bot (dat de identiteit verifieert),channelis de chatruimte waaraan moet worden deelgenomen. Eén accountvermelding neemt deel aan precies één kanaal.- Tokens werken met of zonder het voorvoegsel
oauth:; OpenClaw normaliseert beide vormen (de installatiewizard verwacht de vorm metoauth:).
Token vernieuwen (optioneel)
Tokens van Twitch Token Generator kunnen niet door OpenClaw worden vernieuwd. Genereer ze opnieuw wanneer ze zijn verlopen (ze blijven enkele uren geldig; er is geen appregistratie nodig).
Maak voor automatische vernieuwing je eigen app in de Twitch Developer Console en voeg het volgende toe:
{ channels: { twitch: { clientSecret: "your_client_secret", refreshToken: "your_refresh_token", }, },}Als beide zijn ingesteld, gebruikt de Plugin een vernieuwende authenticatieprovider die tokens vóór het verlopen vernieuwt en elke vernieuwing registreert. Zonder refreshToken wordt token refresh disabled (no refresh token) geregistreerd; zonder clientSecret wordt teruggevallen op een statisch token dat niet wordt vernieuwd.
Ondersteuning voor meerdere accounts
Gebruik channels.twitch.accounts met aanmeldgegevens per account. Zie Configuratie voor het gedeelde patroon.
Voorbeeld (één botaccount in twee kanalen):
{ channels: { twitch: { accounts: { channel1: { username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "yourchannel", }, channel2: { username: "openclaw", accessToken: "oauth:def456...", clientId: "uvw012...", channel: "secondchannel", }, }, }, },}Toegangsbeheer
allowFrom is een strikte toestemmingslijst met Twitch-gebruikers-ID's. Wanneer deze is ingesteld, wordt allowedRoles genegeerd; laat allowFrom oningesteld om in plaats daarvan op rollen gebaseerd toegangsbeheer te gebruiken.
Beschikbare rollen: "moderator", "owner", "vip", "subscriber", "all".
Toestemmingslijst met gebruikers-ID's (veiligst)
{ channels: { twitch: { accounts: { default: { allowFrom: ["123456789", "987654321"], }, }, }, },}Op rollen gebaseerd
{ channels: { twitch: { accounts: { default: { allowedRoles: ["moderator", "vip"], }, }, }, },}Vereiste @vermelding uitschakelen
requireMention is standaard ingesteld op true. Om op alle toegestane berichten te antwoorden:
{ channels: { twitch: { accounts: { default: { requireMention: false, }, }, }, },}Problemen oplossen
Voer eerst diagnostische opdrachten uit:
openclaw doctoropenclaw channels status --probeBot reageert niet op berichten
- Controleer het toegangsbeheer: Zorg ervoor dat je gebruikers-ID in
allowFromstaat, of verwijderallowFromtijdelijk en stelallowedRoles: ["all"]in om te testen. - Controleer de vermeldingscontrole: Met
requireMention: true(standaard) moeten berichten de gebruikersnaam van de bot met een @ vermelden. - Controleer of de bot zich in het kanaal bevindt: De bot neemt alleen deel aan het kanaal dat in
channelis opgegeven.
Tokenproblemen
Failed to connect of authenticatiefouten:
- Controleer of
accessTokende waarde van het OAuth-toegangstoken is (het voorvoegseloauth:is optioneel) - Controleer of het token de bereiken
chat:readenchat:writeheeft - Controleer bij gebruik van tokenvernieuwing of
clientSecretenrefreshTokenzijn ingesteld
Tokenvernieuwing werkt niet
Controleer de logboeken op vernieuwingsgebeurtenissen:
Using env token source for mybotAccess token refreshed for user 123456 (expires in 14400s)Als je token refresh disabled (no refresh token) ziet:
- Zorg ervoor dat
clientSecretis opgegeven - Zorg ervoor dat
refreshTokenis opgegeven
Configuratie
Accountconfiguratie
usernamestringrequiredGebruikersnaam van de bot (het account dat de identiteit verifieert).
accessTokenstringrequiredOAuth-toegangstoken met chat:read en chat:write (configuratie of omgevingsvariabele voor het standaardaccount).
clientIdstringrequiredTwitch-client-ID (uit Token Generator of je app). Optioneel in het schema, maar vereist om verbinding te maken.
channelstringrequiredKanaal waaraan moet worden deelgenomen.
enabledbooleandefault: trueDit account inschakelen.
clientSecretstringOptioneel: voor automatische tokenvernieuwing.
refreshTokenstringOptioneel: voor automatische tokenvernieuwing.
expiresInnumberVervaltijd van het token in seconden (voor het bijhouden van vernieuwingen).
obtainmentTimestampnumberTijdstempel waarop het token is verkregen (voor het bijhouden van vernieuwingen).
allowFromstring[]Toestemmingslijst met gebruikers-ID's. Wanneer deze is ingesteld, worden rollen genegeerd.
allowedRoles'Array<"moderator"requireMentionbooleandefault: trueEen @vermelding vereisen om de bot te activeren.
responsePrefixstringAangepast voorvoegsel voor uitgaande antwoorden van dit account.
Provideropties
channels.twitch.enabled- Het starten van het kanaal in- of uitschakelenchannels.twitch.username/accessToken/clientId/channel- Vereenvoudigde configuratie voor één account (implicietdefault-account; heeft voorrang opaccounts.default)channels.twitch.accounts.<accountName>- Configuratie voor meerdere accounts (alle bovenstaande accountvelden)channels.twitch.defaultAccount- Welke accountnaam de standaard ischannels.twitch.markdown.tables- Weergavemodus voor Markdown-tabellen (off|bullets|code|block)
Volledig voorbeeld:
{ 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"], }, }, }, },}Toolacties
De agent kan Twitch-berichten verzenden via de actie send van de berichtentool:
{ channel: "twitch", action: "send", to: "#mychannel", message: "Hello Twitch!",}to is optioneel en gebruikt standaard het geconfigureerde channel van het account.
Veiligheid en beheer
- Behandel tokens als wachtwoorden - leg tokens nooit vast in git.
- Gebruik automatische tokenvernieuwing voor bots die langdurig actief zijn.
- Gebruik toestemmingslijsten met gebruikers-ID's in plaats van gebruikersnamen voor toegangsbeheer.
- Bewaak logboeken op tokenvernieuwingsgebeurtenissen en de verbindingsstatus.
- Beperk tokenbereiken tot het minimum - vraag alleen
chat:readenchat:writeaan. - Als je vastloopt: start de Gateway opnieuw nadat je hebt gecontroleerd dat geen ander proces de sessie beheert.
Limieten
- 500 tekens per bericht; langere antwoorden worden op woordgrenzen opgesplitst.
- Markdown wordt vóór verzending verwijderd (Twitch-chat is platte tekst; nieuwe regels worden spaties).
- OpenClaw voegt zelf geen snelheidsbeperking toe; de Twurple-chatclient verwerkt de snelheidslimieten van Twitch.
Gerelateerd
- Kanaalroutering — sessieroutering voor berichten
- Overzicht van kanalen — alle ondersteunde kanalen
- Groepen — gedrag van groepschats en controle op vermeldingen
- Koppelen — DM-authenticatie en koppelingsproces
- Beveiliging — toegangsmodel en beveiliging tegen aanvallen