Developer and self-hosted
Twitch
Twitch-chatondersteuning via IRC-verbinding. OpenClaw maakt verbinding als Twitch-gebruiker (botaccount) om berichten in kanalen te ontvangen en te verzenden.
Gebundelde Plugin
Als je een oudere build gebruikt of een aangepaste installatie waarin Twitch is uitgesloten, installeer dan het npm-pakket rechtstreeks:
npm-register
openclaw plugins install @openclaw/twitch
Lokale checkout
openclaw plugins install ./path/to/local/twitch-plugin
Gebruik het kale pakket om de huidige officiële release-tag te volgen. Pin alleen een exacte versie wanneer je een reproduceerbare installatie nodig hebt.
Details: Plugins
Snelle installatie (beginner)
Zorg dat de Plugin beschikbaar is
Huidige verpakte OpenClaw-releases bundelen deze al. Oudere/aangepaste installaties kunnen deze handmatig toevoegen met de bovenstaande opdrachten.
Maak een Twitch-botaccount aan
Maak een speciaal Twitch-account voor de bot (of gebruik een bestaand account).
Genereer inloggegevens
Gebruik Twitch Token Generator:
- Selecteer Bot Token
- Controleer of scopes
chat:readenchat:writezijn geselecteerd - Kopieer de Client ID en Access Token
Vind je Twitch-gebruikers-ID
Gebruik https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ om een gebruikersnaam naar een Twitch-gebruikers-ID om te zetten.
Configureer het token
- Env:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(alleen standaardaccount) - Of configuratie:
channels.twitch.accessToken
Als beide zijn ingesteld, heeft configuratie voorrang (env-fallback is alleen voor het standaardaccount).
Start de Gateway
Start de Gateway met het geconfigureerde kanaal.
Minimale configuratie:
{
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/
},
},
}
Wat het is
- Een Twitch-kanaal dat eigendom is van de Gateway.
- Deterministische routering: antwoorden gaan altijd terug naar Twitch.
- Elk account wordt gekoppeld aan een geïsoleerde sessiesleutel
agent:<agentId>:twitch:<accountName>. usernameis het account van de bot (wie zich authenticeert),channelis de chatruimte waaraan wordt deelgenomen.
Installatie (gedetailleerd)
Inloggegevens genereren
Gebruik Twitch Token Generator:
- Selecteer Bot Token
- Controleer of scopes
chat:readenchat:writezijn geselecteerd - Kopieer de Client ID en Access Token
De bot configureren
Env-var (alleen standaardaccount)
OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Configuratie
{
channels: {
twitch: {
enabled: true,
username: "openclaw",
accessToken: "oauth:abc123...",
clientId: "xyz789...",
channel: "vevisk",
},
},
}
Als zowel env als configuratie zijn ingesteld, heeft configuratie voorrang.
Toegangscontrole (aanbevolen)
{
channels: {
twitch: {
allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
},
},
}
Geef de voorkeur aan allowFrom voor een harde toelatingslijst. Gebruik in plaats daarvan allowedRoles als je rolgebaseerde toegang wilt.
Beschikbare rollen: "moderator", "owner", "vip", "subscriber", "all".
Token vernieuwen (optioneel)
Tokens van Twitch Token Generator kunnen niet automatisch worden vernieuwd - genereer ze opnieuw wanneer ze zijn verlopen.
Voor automatische tokenvernieuwing maak je je eigen Twitch-applicatie aan op Twitch Developer Console en voeg je dit toe aan de configuratie:
{
channels: {
twitch: {
clientSecret: "your_client_secret",
refreshToken: "your_refresh_token",
},
},
}
De bot vernieuwt tokens automatisch vóór de vervaldatum en logt vernieuwingsgebeurtenissen.
Ondersteuning voor meerdere accounts
Gebruik channels.twitch.accounts met tokens 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: "vevisk",
},
channel2: {
username: "openclaw",
accessToken: "oauth:def456...",
clientId: "uvw012...",
channel: "secondchannel",
},
},
},
},
}
Toegangscontrole
Gebruikers-ID-toelatingslijst (meest veilig)
{
channels: {
twitch: {
accounts: {
default: {
allowFrom: ["123456789", "987654321"],
},
},
},
},
}
Rolgebaseerd
{
channels: {
twitch: {
accounts: {
default: {
allowedRoles: ["moderator", "vip"],
},
},
},
},
}
allowFrom is een harde toelatingslijst. Wanneer deze is ingesteld, zijn alleen die gebruikers-ID's toegestaan. Als je rolgebaseerde toegang wilt, laat allowFrom dan oningesteld en configureer in plaats daarvan allowedRoles.
@mention-vereiste uitschakelen
Standaard is requireMention true. Om dit uit te schakelen en op alle berichten te reageren:
{
channels: {
twitch: {
accounts: {
default: {
requireMention: false,
},
},
},
},
}
Probleemoplossing
Voer eerst diagnostische opdrachten uit:
openclaw doctor
openclaw channels status --probe
Bot reageert niet op berichten
- Controleer toegangscontrole: Zorg dat je gebruikers-ID in
allowFromstaat, of verwijderallowFromtijdelijk en stelallowedRoles: ["all"]in om te testen. - Controleer of de bot in het kanaal zit: De bot moet deelnemen aan het kanaal dat is opgegeven in
channel.
Tokenproblemen
"Kan geen verbinding maken" of authenticatiefouten:
- Controleer of
accessTokende OAuth-toegangstokenwaarde is (begint meestal met het voorvoegseloauth:) - Controleer of het token scopes
chat:readenchat:writeheeft - Als je tokenvernieuwing gebruikt, controleer dan of
clientSecretenrefreshTokenzijn ingesteld
Tokenvernieuwing werkt niet
Controleer logs op vernieuwingsgebeurtenissen:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Als je "token refresh disabled (no refresh token)" ziet:
- Zorg dat
clientSecretis opgegeven - Zorg dat
refreshTokenis opgegeven
Configuratie
Accountconfiguratie
usernamestringBotgebruikersnaam.
accessTokenstringOAuth-toegangstoken met chat:read en chat:write.
clientIdstringTwitch Client ID (van Token Generator of je app).
channelstringrequiredKanaal om aan deel te nemen.
enabledbooleanSchakel dit account in.
clientSecretstringOptioneel: voor automatische tokenvernieuwing.
refreshTokenstringOptioneel: voor automatische tokenvernieuwing.
expiresInnumberTokenverval in seconden.
obtainmentTimestampnumberTijdstempel waarop token is verkregen.
allowFromstring[]Gebruikers-ID-toelatingslijst.
allowedRolesArray<"moderator" | "owner" | "vip" | "subscriber" | "all"-F�`y��y��z�����requireMentionbooleanVereis @mention.
Provideropties
channels.twitch.enabled- Schakel kanaalstart in/uitchannels.twitch.username- Botgebruikersnaam (vereenvoudigde configuratie voor één account)channels.twitch.accessToken- OAuth-toegangstoken (vereenvoudigde configuratie voor één account)channels.twitch.clientId- Twitch Client ID (vereenvoudigde configuratie voor één account)channels.twitch.channel- Kanaal om aan deel te nemen (vereenvoudigde configuratie voor één account)channels.twitch.accounts.<accountName>- Configuratie voor meerdere accounts (alle bovenstaande accountvelden)
Volledig voorbeeld:
{
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"],
},
},
},
},
}
Toolacties
De agent kan twitch aanroepen met actie:
send- Stuur een bericht naar een kanaal
Voorbeeld:
{
action: "twitch",
params: {
message: "Hello Twitch!",
to: "#mychannel",
},
}
Veiligheid en beheer
- Behandel tokens als wachtwoorden — Commit tokens nooit naar git.
- Gebruik automatische tokenvernieuwing voor langlopende bots.
- Gebruik gebruikers-ID-toelatingslijsten in plaats van gebruikersnamen voor toegangscontrole.
- Monitor logs voor tokenvernieuwingsgebeurtenissen en verbindingsstatus.
- Beperk tokens minimaal — Vraag alleen
chat:readenchat:writeaan. - Als je vastloopt: Herstart de Gateway nadat je hebt bevestigd dat geen ander proces eigenaar is van de sessie.
Limieten
- 500 tekens per bericht (automatisch op woordgrenzen opgesplitst).
- Markdown wordt verwijderd vóór het opsplitsen.
- Geen snelheidsbeperking (gebruikt de ingebouwde snelheidslimieten van Twitch).
Gerelateerd
- Kanaalroutering — sessieroutering voor berichten
- Kanalenoverzicht — alle ondersteunde kanalen
- Groepen — groepschatgedrag en mention-gating
- Koppelen — DM-authenticatie en koppelingsflow
- Beveiliging — toegangsmodel en hardening