Twitch
Підтримка чату Twitch через IRC-з’єднання. OpenClaw підключається як користувач Twitch (обліковий запис бота), щоб отримувати й надсилати повідомлення в каналах.Вбудований плагін
Twitch постачається як вбудований плагін у поточних релізах OpenClaw, тому звичайні пакетні збірки не потребують окремого встановлення. Якщо ви використовуєте старішу збірку або власну інсталяцію без Twitch, установіть його вручну: Установлення через CLI (реєстр npm):Швидке налаштування (для початківців)
- Переконайтеся, що плагін Twitch доступний.
- Поточні пакетні релізи OpenClaw уже містять його в комплекті.
- У старіших/власних інсталяціях його можна додати вручну командами вище.
- Створіть окремий обліковий запис Twitch для бота (або використовуйте наявний обліковий запис).
- Згенеруйте облікові дані: Twitch Token Generator
- Виберіть Bot Token
- Переконайтеся, що вибрано області доступу
chat:readіchat:write - Скопіюйте Client ID і Access Token
- Знайдіть свій ID користувача Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Налаштуйте токен:
- Змінна середовища:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(лише для облікового запису за замовчуванням) - Або конфігурація:
channels.twitch.accessToken - Якщо задано обидва варіанти, пріоритет має конфігурація (змінна середовища використовується лише як резерв для облікового запису за замовчуванням).
- Змінна середовища:
- Запустіть gateway.
allowFrom або allowedRoles), щоб неавторизовані користувачі не могли запускати бота. За замовчуванням requireMention має значення true.
Мінімальна конфігурація:
Що це таке
- Канал Twitch, яким керує Gateway.
- Детермінована маршрутизація: відповіді завжди повертаються в Twitch.
- Кожен обліковий запис зіставляється з ізольованим ключем сесії
agent:<agentId>:twitch:<accountName>. username— це обліковий запис бота (хто автентифікується),channel— це чат, до якого потрібно приєднатися.
Налаштування (детально)
Генерація облікових даних
Використайте Twitch Token Generator:- Виберіть Bot Token
- Переконайтеся, що вибрано області доступу
chat:readіchat:write - Скопіюйте Client ID і Access Token
Налаштування бота
Змінна середовища (лише для облікового запису за замовчуванням):Контроль доступу (рекомендовано)
allowFrom для жорсткого allowlist. Натомість використовуйте allowedRoles, якщо вам потрібен доступ на основі ролей.
Доступні ролі: "moderator", "owner", "vip", "subscriber", "all".
Чому саме ID користувачів? Імена користувачів можуть змінюватися, що дозволяє видавати себе за інших. ID користувачів є постійними.
Знайдіть свій ID користувача Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (перетворення імені користувача Twitch на ID)
Оновлення токена (необов’язково)
Токени з Twitch Token Generator не можна автоматично оновлювати — після завершення строку дії згенеруйте нові. Для автоматичного оновлення токена створіть власний застосунок Twitch у Twitch Developer Console і додайте до конфігурації:Підтримка кількох облікових записів
Використовуйтеchannels.twitch.accounts із токенами для окремих облікових записів. Див. gateway/configuration для спільного шаблону.
Приклад (один обліковий запис бота у двох каналах):
Контроль доступу
Обмеження на основі ролей
Allowlist за ID користувача (найбезпечніше)
Доступ на основі ролей (альтернатива)
allowFrom — це жорсткий allowlist. Якщо його встановлено, дозволено лише цим ID користувачів.
Якщо вам потрібен доступ на основі ролей, не встановлюйте allowFrom, а натомість налаштуйте allowedRoles:
Вимкнення вимоги @mention
За замовчуваннямrequireMention має значення true. Щоб вимкнути цю вимогу й відповідати на всі повідомлення:
Усунення несправностей
Спочатку виконайте команди діагностики:Бот не відповідає на повідомлення
Перевірте контроль доступу: переконайтеся, що ваш ID користувача є вallowFrom, або тимчасово
приберіть allowFrom і встановіть allowedRoles: ["all"] для тестування.
Перевірте, що бот перебуває в каналі: бот має приєднатися до каналу, указаного в channel.
Проблеми з токеном
«Failed to connect» або помилки автентифікації:- Переконайтеся, що
accessToken— це значення OAuth access token (зазвичай починається з префіксаoauth:) - Перевірте, що токен має області доступу
chat:readіchat:write - Якщо ви використовуєте оновлення токена, переконайтеся, що задано
clientSecretіrefreshToken
Оновлення токена не працює
Перевірте журнали на наявність подій оновлення:- Переконайтеся, що надано
clientSecret - Переконайтеся, що надано
refreshToken
Конфігурація
Конфігурація облікового запису:username- ім’я користувача ботаaccessToken- OAuth access token зchat:readіchat:writeclientId- Twitch Client ID (з Token Generator або вашого застосунку)channel- канал для приєднання (обов’язково)enabled- увімкнути цей обліковий запис (за замовчуванням:true)clientSecret- необов’язково: для автоматичного оновлення токенаrefreshToken- необов’язково: для автоматичного оновлення токенаexpiresIn- строк дії токена в секундахobtainmentTimestamp- timestamp отримання токенаallowFrom- allowlist ID користувачівallowedRoles- контроль доступу на основі ролей ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- вимагати @mention (за замовчуванням:true)
channels.twitch.enabled- увімкнути/вимкнути запуск каналуchannels.twitch.username- ім’я користувача бота (спрощена конфігурація для одного облікового запису)channels.twitch.accessToken- OAuth access token (спрощена конфігурація для одного облікового запису)channels.twitch.clientId- Twitch Client ID (спрощена конфігурація для одного облікового запису)channels.twitch.channel- канал для приєднання (спрощена конфігурація для одного облікового запису)channels.twitch.accounts.<accountName>- конфігурація для кількох облікових записів (усі поля облікового запису вище)
Дії інструмента
Агент може викликатиtwitch з такою дією:
send- надіслати повідомлення в канал
Безпека та операції
- Ставтеся до токенів як до паролів - ніколи не комітьте токени в git
- Використовуйте автоматичне оновлення токена для довготривалих ботів
- Використовуйте allowlist за ID користувачів замість імен користувачів для контролю доступу
- Стежте за журналами подій оновлення токенів і стану з’єднання
- Запитуйте мінімально необхідні області доступу - лише
chat:readіchat:write - Якщо застрягли: перезапустіть gateway після підтвердження, що жоден інший процес не володіє сесією
Обмеження
- 500 символів на повідомлення (автоматичне розбиття на межах слів)
- Markdown вилучається перед розбиттям
- Обмеження швидкості немає (використовуються вбудовані обмеження Twitch)
Пов’язане
- Огляд каналів — усі підтримувані канали
- Pairing — автентифікація особистих повідомлень і процес pairing
- Групи — поведінка групових чатів і вимога згадки
- Маршрутизація каналів — маршрутизація сесій для повідомлень
- Безпека — модель доступу та посилення захисту