Перейти до основного вмісту

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Підтримка чату Twitch через IRC-з’єднання. OpenClaw підключається як користувач Twitch (обліковий запис бота), щоб отримувати й надсилати повідомлення в каналах.

Вбудований Plugin

Twitch постачається як вбудований Plugin у поточних випусках OpenClaw, тому звичайні пакетовані збірки не потребують окремого встановлення.
Якщо ви використовуєте старішу збірку або кастомне встановлення, яке не включає Twitch, встановіть npm-пакет напряму:
openclaw plugins install @openclaw/twitch
Використовуйте пакет без версії, щоб стежити за поточним офіційним тегом випуску. Закріплюйте точну версію лише тоді, коли вам потрібне відтворюване встановлення. Докладніше: Plugins

Швидке налаштування (для початківців)

1

Переконайтеся, що Plugin доступний

Поточні пакетовані випуски OpenClaw вже включають його. У старіших або кастомних встановленнях його можна додати вручну командами вище.
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

Запустіть Gateway із налаштованим каналом.
Додайте контроль доступу (allowFrom або allowedRoles), щоб запобігти запуску бота неавторизованими користувачами. Значення requireMention за замовчуванням — true.
Мінімальна конфігурація:
{
  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/
    },
  },
}

Що це таке

  • Канал Twitch, яким володіє Gateway.
  • Детермінована маршрутизація: відповіді завжди повертаються до Twitch.
  • Кожен обліковий запис відповідає ізольованому ключу сеансу agent:<agentId>:twitch:<accountName>.
  • username — це обліковий запис бота (який проходить автентифікацію), channel — це чат-кімната, до якої потрібно приєднатися.

Налаштування (докладно)

Згенеруйте облікові дані

Використайте Twitch Token Generator:
  • Виберіть Bot Token
  • Перевірте, що вибрано області доступу chat:read і chat:write
  • Скопіюйте Client ID і Access Token
Ручна реєстрація застосунку не потрібна. Токени спливають через кілька годин.

Налаштуйте бота

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Якщо задано і змінну середовища, і конфігурацію, конфігурація має пріоритет.

Контроль доступу (рекомендовано)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Надавайте перевагу allowFrom для жорсткого списку дозволених. Використовуйте allowedRoles натомість, якщо вам потрібен доступ на основі ролей. Доступні ролі: "moderator", "owner", "vip", "subscriber", "all".
Чому ідентифікатори користувачів? Імена користувачів можуть змінюватися, що дає змогу видавати себе за іншу особу. Ідентифікатори користувачів постійні.Знайдіть свій ідентифікатор користувача Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (перетворіть своє ім’я користувача Twitch на ID)

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

Токени з Twitch Token Generator не можна автоматично оновлювати — згенеруйте новий після завершення строку дії. Для автоматичного оновлення токена створіть власний застосунок Twitch у Twitch Developer Console і додайте до конфігурації:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
Бот автоматично оновлює токени до завершення строку дії та записує події оновлення в журнали.

Підтримка кількох облікових записів

Використовуйте channels.twitch.accounts із токенами для кожного облікового запису. Спільний шаблон див. у Конфігурації. Приклад (один обліковий запис бота у двох каналах):
{
  channels: {
    twitch: {
      accounts: {
        channel1: {
          username: "openclaw",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "vevisk",
        },
        channel2: {
          username: "openclaw",
          accessToken: "oauth:def456...",
          clientId: "uvw012...",
          channel: "secondchannel",
        },
      },
    },
  },
}
Кожному обліковому запису потрібен власний токен (один токен на канал).

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

{
  channels: {
    twitch: {
      accounts: {
        default: {
          allowFrom: ["123456789", "987654321"],
        },
      },
    },
  },
}

Усунення несправностей

Спочатку запустіть діагностичні команди:
openclaw doctor
openclaw channels status --probe
  • Перевірте контроль доступу: Переконайтеся, що ваш ID користувача є в allowFrom, або тимчасово видаліть allowFrom і задайте allowedRoles: ["all"] для тестування.
  • Перевірте, що бот у каналі: Бот має приєднатися до каналу, указаного в channel.
“Failed to connect” або помилки автентифікації:
  • Перевірте, що accessToken — це значення токена доступу OAuth (зазвичай починається з префікса oauth:)
  • Перевірте, що токен має області доступу chat:read і chat:write
  • Якщо використовується оновлення токена, перевірте, що clientSecret і refreshToken задані
Перевірте журнали на наявність подій оновлення:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Якщо ви бачите “token refresh disabled (no refresh token)”:
  • Переконайтеся, що clientSecret надано
  • Переконайтеся, що refreshToken надано

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

Конфігурація облікового запису

username
string
Ім’я користувача бота.
accessToken
string
Токен доступу OAuth із chat:read і chat:write.
clientId
string
Twitch Client ID (з Token Generator або вашого застосунку).
channel
string
обов'язково
Канал, до якого потрібно приєднатися.
enabled
boolean
за замовчуванням:"true"
Увімкнути цей обліковий запис.
clientSecret
string
Необов’язково: для автоматичного оновлення токена.
refreshToken
string
Необов’язково: для автоматичного оновлення токена.
expiresIn
number
Строк дії токена в секундах.
obtainmentTimestamp
number
Час отримання токена.
allowFrom
string[]
Список дозволених ID користувачів.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Контроль доступу на основі ролей.
requireMention
boolean
за замовчуванням:"true"
Вимагати @mention.

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

  • channels.twitch.enabled - Увімкнути/вимкнути запуск каналу
  • channels.twitch.username - Ім’я користувача бота (спрощена конфігурація одного облікового запису)
  • channels.twitch.accessToken - Токен доступу OAuth (спрощена конфігурація одного облікового запису)
  • channels.twitch.clientId - Twitch Client ID (спрощена конфігурація одного облікового запису)
  • channels.twitch.channel - Канал, до якого потрібно приєднатися (спрощена конфігурація одного облікового запису)
  • channels.twitch.accounts.<accountName> - Конфігурація кількох облікових записів (усі поля облікового запису вище)
Повний приклад:
{
  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"],
        },
      },
    },
  },
}

Дії інструментів

Агент може викликати twitch з дією:
  • send - Надіслати повідомлення в канал
Приклад:
{
  action: "twitch",
  params: {
    message: "Hello Twitch!",
    to: "#mychannel",
  },
}

Безпека та експлуатація

  • Ставтеся до токенів як до паролів — ніколи не комітьте токени в git.
  • Використовуйте автоматичне оновлення токенів для довготривалих ботів.
  • Використовуйте списки дозволених ID користувачів замість імен користувачів для контролю доступу.
  • Стежте за журналами для подій оновлення токенів і стану з’єднання.
  • Мінімізуйте області доступу токенів — запитуйте лише chat:read і chat:write.
  • Якщо застрягли: перезапустіть Gateway після підтвердження, що жоден інший процес не володіє сеансом.

Обмеження

  • 500 символів на повідомлення (автоматично розбивається на частини на межах слів).
  • Markdown видаляється перед розбиттям на частини.
  • Без обмеження частоти (використовуються вбудовані обмеження частоти Twitch).

Пов’язане