Skip to main content
LINE подключается к OpenClaw через LINE Messaging API. Плагин работает как приёмник Webhook на Gateway и использует токен доступа канала и секрет канала для аутентификации. Статус: официальный плагин, устанавливаемый отдельно. Поддерживаются личные сообщения, групповые чаты, медиафайлы, местоположения, сообщения Flex, шаблонные сообщения и быстрые ответы. Реакции и ветки обсуждений не поддерживаются.

Установка

Установите LINE перед настройкой канала:
Локальная рабочая копия (при запуске из git-репозитория):

Настройка

  1. Создайте учётную запись LINE Developers и откройте Console: https://developers.line.biz/console/
  2. Создайте (или выберите) Provider и добавьте канал Messaging API.
  3. Скопируйте Channel access token и Channel secret из настроек канала.
  4. Включите Use webhook в настройках Messaging API.
  5. Укажите в качестве URL-адреса Webhook конечную точку Gateway (требуется HTTPS):
Gateway отвечает на проверочный запрос Webhook от LINE (GET) и подтверждает подписанные входящие события (POST) сразу после проверки подписи и полезной нагрузки; обработка агентом продолжается асинхронно. Если требуется пользовательский путь, задайте channels.line.webhookPath или channels.line.accounts.<id>.webhookPath и соответствующим образом обновите URL-адрес. Примечания по безопасности:
  • Проверка подписи LINE зависит от тела запроса (HMAC вычисляется по необработанному телу), поэтому перед проверкой OpenClaw применяет строгий лимит размера тела до аутентификации (64 КБ) и тайм-аут чтения.
  • OpenClaw обрабатывает события Webhook из проверенных необработанных байтов запроса. Значения req.body, преобразованные промежуточным ПО вышестоящего уровня, игнорируются для сохранения целостности подписи.

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

Минимальная конфигурация:
Конфигурация общедоступных личных сообщений:
Переменные окружения (только для учётной записи по умолчанию):
  • LINE_CHANNEL_ACCESS_TOKEN
  • LINE_CHANNEL_SECRET
Файлы токена и секрета:
tokenFile и secretFile должны указывать на обычные файлы. Символические ссылки отклоняются. Значения, заданные непосредственно в конфигурации, имеют приоритет над файлами; переменные окружения используются в последнюю очередь для учётной записи по умолчанию. Несколько учётных записей:

Управление доступом

По умолчанию для личных сообщений используется сопряжение. Неизвестные отправители получают код сопряжения, а их сообщения игнорируются до одобрения:
Списки разрешённых отправителей и политики:
  • channels.line.dmPolicy: pairing | allowlist | open | disabled (по умолчанию pairing)
  • channels.line.allowFrom: разрешённые идентификаторы пользователей LINE для личных сообщений; dmPolicy: "open" требует ["*"]
  • channels.line.groupPolicy: allowlist | open | disabled (по умолчанию allowlist)
  • channels.line.groupAllowFrom: разрешённые идентификаторы пользователей LINE для групп; записи allowFrom для личных сообщений не предоставляют отправителям доступ к группам
  • Переопределения для отдельных групп: channels.line.groups.<groupId>.allowFrom (а также enabled, requireMention, systemPrompt, skills). При groupPolicy: "allowlist" задайте groupAllowFrom или групповой параметр allowFrom; пустой список разрешённых отправителей группы блокирует групповые сообщения, даже если личные сообщения открыты.
  • На статические группы доступа отправителей можно ссылаться из allowFrom, groupAllowFrom и группового параметра allowFrom с помощью accessGroup:<name>; см. Группы доступа.
  • Примечание о среде выполнения: если channels.line полностью отсутствует, среда выполнения использует groupPolicy="allowlist" для проверок групп (даже если задан channels.defaults.groupPolicy).
Идентификаторы LINE чувствительны к регистру. Допустимые идентификаторы имеют следующий вид:
  • Пользователь: U + 32 шестнадцатеричных символа
  • Группа: C + 32 шестнадцатеричных символа
  • Комната: R + 32 шестнадцатеричных символа

Обработка сообщений

  • Текст разбивается на фрагменты длиной до 5000 символов.
  • Форматирование Markdown удаляется; блоки кода и таблицы по возможности преобразуются в карточки Flex.
  • Потоковые ответы буферизуются; LINE получает полные фрагменты с анимацией загрузки, пока агент выполняет работу.
  • Размер загружаемых медиафайлов ограничен параметром channels.line.mediaMaxMb (по умолчанию 10).
  • Входящие медиафайлы сохраняются в ~/.openclaw/media/inbound/ перед передачей агенту в соответствии с общим хранилищем медиафайлов, используемым другими плагинами каналов.

Данные канала (форматированные сообщения)

Используйте channelData.line для отправки быстрых ответов, местоположений, карточек Flex или шаблонных сообщений.
Плагин LINE также предоставляет команду /card для предустановок сообщений Flex:

Поддержка ACP

LINE поддерживает привязки разговоров ACP (Agent Communication Protocol):
  • /acp spawn <agent> --bind here привязывает текущий чат LINE к сеансу ACP без создания дочерней ветки.
  • Настроенные привязки ACP и активные сеансы ACP, привязанные к разговору, работают в LINE так же, как и в других разговорных каналах.
Дополнительные сведения см. в разделе Агенты ACP.

Исходящие медиафайлы

Плагин LINE отправляет изображения, видео и аудио с помощью инструмента сообщений агента:
  • Изображения: отправляются как сообщения LINE с изображением; по умолчанию для предварительного просмотра используется изображение по URL-адресу медиафайла.
  • Видео: требуют изображения для предварительного просмотра; задайте в channelData.line.previewImageUrl URL-адрес изображения.
  • Аудио: отправляется как аудиосообщения LINE; длительность по умолчанию составляет 60 секунд, если не задан channelData.line.durationMs.
Тип медиафайла берётся из channelData.line.mediaKind, если этот параметр задан; в противном случае он определяется по другим параметрам LINE или суффиксу файла в URL-адресе, а резервным вариантом является изображение. URL-адреса исходящих медиафайлов должны быть общедоступными URL-адресами HTTPS длиной не более 2000 символов. OpenClaw проверяет имя целевого хоста перед передачей URL-адреса в LINE и отклоняет адреса обратной петли, локального канала и частной сети. При обычной отправке медиафайлов без параметров LINE используется маршрут изображений.

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

  • Проверка Webhook завершается ошибкой: убедитесь, что URL-адрес Webhook использует HTTPS и channelSecret соответствует значению в консоли LINE.
  • Входящие события отсутствуют: убедитесь, что путь Webhook соответствует channels.line.webhookPath и что Gateway доступен из LINE.
  • Ошибки загрузки медиафайлов: увеличьте channels.line.mediaMaxMb, если размер медиафайлов превышает установленный по умолчанию лимит.

Связанные разделы