Skip to main content
Поддержка чата Twitch через интерфейс чата Twitch (IRC) с помощью клиента Twurple. OpenClaw входит в систему под учётной записью бота Twitch, присоединяется к одному каналу для каждой настроенной учётной записи и отвечает в этом канале.

Установка

Twitch поставляется как официальный плагин и не входит в основную установку.
plugins install регистрирует и включает плагин. При выборе Twitch во время openclaw onboard или openclaw channels add он устанавливается по требованию. Используйте имя пакета без версии, чтобы получать текущий выпуск; закрепляйте точную версию только для воспроизводимых установок. Требуется OpenClaw 2026.4.10 или новее. Подробнее: Плагины

Быстрая настройка

1

Установите плагин

См. раздел Установка выше.
2

Создайте учётную запись бота Twitch

Создайте отдельную учётную запись Twitch для бота (или используйте существующую).
3

Создайте учётные данные

Используйте Twitch Token Generator:
  • Выберите Bot Token
  • Убедитесь, что выбраны области действия chat:read и chat:write
  • Скопируйте Client ID и Access Token
4

Найдите свой идентификатор пользователя Twitch

Используйте https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/, чтобы преобразовать имя пользователя в идентификатор пользователя Twitch.
5

Настройте токен

  • Переменная окружения: OPENCLAW_TWITCH_ACCESS_TOKEN=... (только для учётной записи по умолчанию)
  • Или конфигурация: channels.twitch.accessToken
Если заданы оба значения, конфигурация имеет приоритет (переменная окружения используется только как резервный вариант для учётной записи по умолчанию).
6

Запустите Gateway

Добавьте контроль доступа (allowFrom или allowedRoles), чтобы неавторизованные пользователи не могли активировать бота. По умолчанию requireMention имеет значение true.
Минимальная конфигурация:

Что это такое

  • Канал Twitch, управляемый Gateway.
  • Детерминированная маршрутизация: ответы всегда возвращаются в тот канал Twitch, откуда пришло сообщение.
  • Каждому подключённому каналу соответствует изолированный ключ группового сеанса agent:<agentId>:twitch:group:<channel>.
  • username — учётная запись бота (которая проходит аутентификацию), а channel — чат, к которому нужно присоединиться. Каждая запись учётной записи присоединяется ровно к одному каналу.
  • Токены работают как с префиксом oauth:, так и без него; OpenClaw нормализует оба варианта (мастер настройки ожидает формат oauth:).

Обновление токена (необязательно)

Токены из Twitch Token Generator невозможно обновить с помощью OpenClaw — создайте новый токен после истечения срока действия (они действуют несколько часов; регистрация приложения не требуется). Для автоматического обновления создайте собственное приложение в Twitch Developer Console и добавьте:
Если заданы оба значения, плагин использует провайдер аутентификации с обновлением, который продлевает токены до истечения срока действия и регистрирует каждое обновление в журнале. Без refreshToken в журнал записывается token refresh disabled (no refresh token); без clientSecret используется статический (необновляемый) токен.

Поддержка нескольких учётных записей

Используйте channels.twitch.accounts с отдельными учётными данными для каждой учётной записи. Общая схема описана в разделе Конфигурация. Пример (одна учётная запись бота в двух каналах):
Для каждой записи учётной записи требуется собственное значение accessToken (переменная окружения применяется только к учётной записи по умолчанию). Учётная запись присоединяется ровно к одному каналу, поэтому для присоединения к двум каналам нужны две учётные записи. channels.twitch.defaultAccount определяет учётную запись по умолчанию.

Контроль доступа

allowFrom — строгий список разрешённых идентификаторов пользователей Twitch. Если он задан, allowedRoles игнорируется; не задавайте allowFrom, чтобы вместо этого использовать доступ на основе ролей. Доступные роли: "moderator", "owner", "vip", "subscriber", "all".
Почему идентификаторы пользователей? Имена пользователей могут изменяться, что позволяет выдавать себя за другого пользователя. Идентификаторы пользователей постоянны.Свой идентификатор можно найти с помощью преобразователя имени пользователя в идентификатор.

Устранение неполадок

Сначала выполните диагностические команды:
  • Проверьте контроль доступа: убедитесь, что ваш идентификатор пользователя указан в allowFrom, либо временно удалите allowFrom и задайте allowedRoles: ["all"] для проверки.
  • Проверьте ограничение по упоминанию: при requireMention: true (значение по умолчанию) сообщения должны содержать @упоминание имени пользователя бота.
  • Убедитесь, что бот находится в канале: бот присоединяется только к каналу, указанному в channel.
Ошибка “Failed to connect” или ошибки аутентификации:
  • Убедитесь, что accessToken содержит значение токена доступа OAuth (префикс oauth: необязателен)
  • Убедитесь, что у токена есть области действия chat:read и chat:write
  • Если используется обновление токена, убедитесь, что заданы clientSecret и refreshToken
Проверьте журнал на наличие событий обновления:
Если отображается token refresh disabled (no refresh token):
  • Убедитесь, что указано значение clientSecret
  • Убедитесь, что указано значение refreshToken

Конфигурация

Конфигурация учётной записи

string
обязательно
Имя пользователя бота (учётная запись, проходящая аутентификацию).
string
обязательно
Токен доступа OAuth с chat:read и chat:write (из конфигурации или переменной окружения для учётной записи по умолчанию).
string
обязательно
Client ID Twitch (из Token Generator или вашего приложения). Необязателен в схеме, но требуется для подключения.
string
обязательно
Канал, к которому нужно присоединиться.
boolean
по умолчанию:"true"
Включить эту учётную запись.
string
Необязательно: для автоматического обновления токена.
string
Необязательно: для автоматического обновления токена.
number
Срок действия токена в секундах (для отслеживания обновления).
number
Временная метка получения токена (для отслеживания обновления).
string[]
Список разрешённых идентификаторов пользователей. Если он задан, роли игнорируются.
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Контроль доступа на основе ролей.
boolean
по умолчанию:"true"
Требовать @упоминание для активации бота.
string
Переопределение префикса исходящих ответов для этой учётной записи.

Параметры провайдера

  • channels.twitch.enabled — включение или отключение запуска канала
  • channels.twitch.username / accessToken / clientId / channel — упрощённая конфигурация одной учётной записи (неявная учётная запись default; имеет приоритет над accounts.default)
  • channels.twitch.accounts.<accountName> — конфигурация нескольких учётных записей (все перечисленные выше поля учётной записи)
  • channels.twitch.defaultAccount — имя учётной записи по умолчанию
  • channels.twitch.markdown.tables — режим отображения таблиц Markdown (off | bullets | code | block)
Полный пример:

Действия инструмента

Агент может отправлять сообщения Twitch через действие send инструмента сообщений:
to является необязательным и по умолчанию использует настроенное для учётной записи значение channel.

Безопасность и эксплуатация

  • Обращайтесь с токенами как с паролями — никогда не добавляйте токены в git.
  • Используйте автоматическое обновление токенов для ботов, работающих продолжительное время.
  • Используйте списки разрешённых идентификаторов пользователей, а не имена пользователей, для контроля доступа.
  • Отслеживайте журнал, чтобы видеть события обновления токенов и состояние подключения.
  • Минимизируйте области действия токенов — запрашивайте только chat:read и chat:write.
  • Если устранить проблему не удаётся: перезапустите Gateway, предварительно убедившись, что никакой другой процесс не владеет сеансом.

Ограничения

  • 500 символов на сообщение; более длинные ответы разбиваются на части по границам слов.
  • Markdown удаляется перед отправкой (чат Twitch использует обычный текст; переводы строк заменяются пробелами).
  • OpenClaw не добавляет собственных ограничений частоты запросов; клиент чата Twurple обрабатывает ограничения частоты Twitch.

Связанные материалы