Regional platforms
LINE
LINE подключается к OpenClaw через LINE Messaging API. Plugin работает как приемник webhook на gateway и использует ваш channel access token + channel secret для аутентификации.
Статус: загружаемый Plugin. Поддерживаются личные сообщения, групповые чаты, медиа, местоположения, Flex messages, template messages и быстрые ответы. Реакции и треды не поддерживаются.
Установка
Установите LINE перед настройкой канала:
openclaw plugins install @openclaw/lineЛокальная рабочая копия (при запуске из git-репозитория):
openclaw plugins install ./path/to/local/line-pluginНастройка
- Создайте аккаунт LINE Developers и откройте Console: https://developers.line.biz/console/
- Создайте (или выберите) Provider и добавьте канал Messaging API.
- Скопируйте Channel access token и Channel secret из настроек канала.
- Включите Use webhook в настройках Messaging API.
- Задайте URL webhook для вашей конечной точки gateway (требуется HTTPS):
https://gateway-host/line/webhookGateway отвечает на проверку webhook от LINE (GET) и подтверждает подписанные
входящие события (POST) сразу после проверки подписи и полезной нагрузки; обработка
агентом продолжается асинхронно.
Если нужен пользовательский путь, задайте channels.line.webhookPath или
channels.line.accounts.<id>.webhookPath и соответственно обновите URL.
Примечание по безопасности:
- Проверка подписи LINE зависит от тела запроса (HMAC по необработанному телу), поэтому OpenClaw применяет строгие ограничения размера тела и тайм-аут до аутентификации перед проверкой.
- OpenClaw обрабатывает события webhook из проверенных необработанных байтов запроса. Значения
req.body, преобразованные промежуточным ПО выше по цепочке, игнорируются для сохранения целостности подписи.
Конфигурация
Минимальная конфигурация:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Конфигурация открытых личных сообщений:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "open", allowFrom: ["*"], }, },}Переменные окружения (только аккаунт по умолчанию):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Файлы токена/секрета:
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile и secretFile должны указывать на обычные файлы. Символические ссылки отклоняются.
Несколько аккаунтов:
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Управление доступом
Личные сообщения по умолчанию требуют сопряжения. Неизвестные отправители получают код сопряжения, а их сообщения игнорируются до одобрения.
openclaw pairing list lineopenclaw pairing approve line <CODE>Списки разрешений и политики:
channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: разрешенные ID пользователей LINE для личных сообщений;dmPolicy: "open"требует["*"]channels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: разрешенные ID пользователей LINE для групп- Переопределения для отдельных групп:
channels.line.groups.<groupId>.allowFrom - Статические группы доступа отправителей можно ссылочно указывать из
allowFrom,groupAllowFromи групповогоallowFromчерезaccessGroup:<name>. - Примечание о runtime: если
channels.lineполностью отсутствует, runtime возвращается кgroupPolicy="allowlist"для проверок групп (даже если заданоchannels.defaults.groupPolicy).
ID LINE чувствительны к регистру. Допустимые ID выглядят так:
- Пользователь:
U+ 32 шестнадцатеричных символа - Группа:
C+ 32 шестнадцатеричных символа - Комната:
R+ 32 шестнадцатеричных символа
Поведение сообщений
- Текст разбивается на фрагменты по 5000 символов.
- Форматирование Markdown удаляется; блоки кода и таблицы по возможности преобразуются в Flex cards.
- Потоковые ответы буферизуются; LINE получает полные фрагменты с анимацией загрузки, пока агент работает.
- Скачивание медиа ограничено
channels.line.mediaMaxMb(по умолчанию 10). - Входящие медиа сохраняются в
~/.openclaw/media/inbound/перед передачей агенту, что соответствует общему хранилищу медиа, используемому другими встроенными Plugin каналов.
Данные канала (расширенные сообщения)
Используйте channelData.line для отправки быстрых ответов, местоположений, Flex cards или template
messages.
{ text: "Here you go", channelData: { line: { quickReplies: ["Status", "Help"], location: { title: "Office", address: "123 Main St", latitude: 35.681236, longitude: 139.767125, }, flexMessage: { altText: "Status card", contents: { /* Flex payload */ }, }, templateMessage: { type: "confirm", text: "Proceed?", confirmLabel: "Yes", confirmData: "yes", cancelLabel: "No", cancelData: "no", }, }, },}Plugin LINE также поставляется с командой /card для пресетов Flex messages:
/card info "Welcome" "Thanks for joining!"Поддержка ACP
LINE поддерживает привязки бесед ACP (Agent Communication Protocol):
/acp spawn <agent> --bind hereпривязывает текущий чат LINE к сессии ACP без создания дочернего треда.- Настроенные привязки ACP и активные сессии ACP, привязанные к беседе, работают в LINE так же, как и в других каналах бесед.
См. агенты ACP для подробностей.
Исходящие медиа
Plugin LINE поддерживает отправку изображений, видео и аудиофайлов через инструмент сообщений агента. Медиа отправляется через специфичный для LINE путь доставки с соответствующей обработкой предпросмотра и отслеживания:
- Изображения: отправляются как сообщения с изображениями LINE с автоматической генерацией предпросмотра.
- Видео: отправляются с явной обработкой предпросмотра и типа содержимого.
- Аудио: отправляется как аудиосообщения LINE.
URL исходящих медиа должны быть публичными HTTPS URL. OpenClaw проверяет целевое имя хоста перед передачей URL в LINE и отклоняет local loopback, link-local и цели в частных сетях.
Общие отправки медиа возвращаются к существующему маршруту только для изображений, когда специфичный для LINE путь недоступен.
Устранение неполадок
- Проверка webhook не проходит: убедитесь, что URL webhook использует HTTPS и
channelSecretсовпадает с LINE console. - Нет входящих событий: подтвердите, что путь webhook совпадает с
channels.line.webhookPathи что gateway доступен из LINE. - Ошибки скачивания медиа: увеличьте
channels.line.mediaMaxMb, если медиа превышает лимит по умолчанию.
См. также
- Обзор каналов — все поддерживаемые каналы
- Сопряжение — аутентификация личных сообщений и поток сопряжения
- Группы — поведение групповых чатов и ограничение по упоминаниям
- Маршрутизация каналов — маршрутизация сессий для сообщений
- Безопасность — модель доступа и усиление защиты