---
read_when:
    - Ви хочете підключити OpenClaw до LINE
    - Потрібно налаштувати Webhook LINE та облікові дані
    - Вам потрібні параметри повідомлень, специфічні для LINE
summary: Налаштування, конфігурація та використання Plugin LINE Messaging API
title: LINE
x-i18n:
    generated_at: "2026-07-16T17:40:20Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 31004467bc227b3a4e18168d1aa8b7f60d59e58994aeb890ac257beb2dbe8449
    source_path: channels/line.md
    workflow: 16
---

LINE підключається до OpenClaw через LINE Messaging API. Plugin працює як отримувач Webhook
на Gateway і використовує ваш токен доступу до каналу та секрет каналу для
автентифікації.

Статус: офіційний Plugin, встановлюється окремо. Підтримуються особисті повідомлення, групові чати, медіафайли,
розташування, повідомлення Flex, шаблонні повідомлення та швидкі відповіді.
Реакції та гілки не підтримуються.

## Встановлення

Установіть LINE перед налаштуванням каналу:

```bash
openclaw plugins install @openclaw/line
```

Локальна робоча копія (під час запуску з репозиторію git):

```bash
openclaw plugins install ./path/to/local/line-plugin
```

## Налаштування

1. Створіть обліковий запис LINE Developers і відкрийте Console:
   [https://developers.line.biz/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):

```text
https://gateway-host/line/webhook
```

Gateway відповідає на перевірку Webhook від LINE (GET) і негайно підтверджує підписані
вхідні події (POST) після перевірки підпису та корисного навантаження; обробка
агентом триває асинхронно.
Якщо потрібен власний шлях, задайте `channels.line.webhookPath` або
`channels.line.accounts.<id>.webhookPath` і відповідно оновіть URL-адресу.

Примітки щодо безпеки:

- Перевірка підпису LINE залежить від тіла запиту (HMAC над необробленим тілом), тому OpenClaw застосовує суворе обмеження розміру тіла до автентифікації (64 КБ) і тайм-аут читання перед перевіркою.
- OpenClaw обробляє події Webhook із перевірених необроблених байтів запиту. Значення `req.body`, перетворені проміжним ПЗ вище за потоком, ігноруються задля збереження цілісності підпису.

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

Мінімальна конфігурація:

```json5
{
  channels: {
    line: {
      enabled: true,
      channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
      channelSecret: "LINE_CHANNEL_SECRET",
      dmPolicy: "pairing",
    },
  },
}
```

Конфігурація загальнодоступних особистих повідомлень:

```json5
{
  channels: {
    line: {
      enabled: true,
      channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
      channelSecret: "LINE_CHANNEL_SECRET",
      dmPolicy: "open",
      allowFrom: ["*"],
    },
  },
}
```

Змінні середовища (лише для облікового запису за замовчуванням):

- `LINE_CHANNEL_ACCESS_TOKEN`
- `LINE_CHANNEL_SECRET`

Файли токена й секрету:

```json5
{
  channels: {
    line: {
      tokenFile: "/path/to/line-token.txt",
      secretFile: "/path/to/line-secret.txt",
    },
  },
}
```

`tokenFile` і `secretFile` мають указувати на звичайні файли. Символічні посилання відхиляються.
Значення безпосередньо в конфігурації мають пріоритет над файлами; змінні середовища є останнім резервним варіантом для облікового запису за замовчуванням.

Кілька облікових записів:

```json5
{
  channels: {
    line: {
      accounts: {
        marketing: {
          channelAccessToken: "...",
          channelSecret: "...",
          webhookPath: "/line/marketing",
        },
      },
    },
  },
}
```

## Керування доступом

Для особистих повідомлень типовим режимом є спарювання. Невідомі відправники отримують код спарювання, а їхні
повідомлення ігноруються до схвалення:

```bash
openclaw pairing list line
openclaw pairing approve line <CODE>
```

Списки дозволених і політики:

- `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>`; див. [Групи доступу](/uk/channels/access-groups).
- Примітка щодо середовища виконання: якщо `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/`, перш ніж передаватися
  агенту, відповідно до спільного сховища медіафайлів, яке використовують інші Plugin каналів.

## Дані каналу (форматовані повідомлення)

Використовуйте `channelData.line` для надсилання швидких відповідей, розташувань, карток Flex або шаблонних
повідомлень.

```json5
{
  text: "Ось, будь ласка",
  channelData: {
    line: {
      quickReplies: ["Статус", "Довідка"],
      location: {
        title: "Офіс",
        address: "123 Main St",
        latitude: 35.681236,
        longitude: 139.767125,
      },
      flexMessage: {
        altText: "Картка статусу",
        contents: {/* Корисне навантаження Flex */},
      },
      templateMessage: {
        type: "confirm",
        text: "Продовжити?",
        confirmLabel: "Так",
        confirmData: "yes",
        cancelLabel: "Ні",
        cancelData: "no",
      },
    },
  },
}
```

Plugin LINE також містить команду `/card` для попередньо налаштованих повідомлень Flex:

```text
/card info "Вітаємо" "Дякуємо, що приєдналися!"
```

## Підтримка ACP

LINE підтримує прив’язування розмов ACP (Agent Communication Protocol):

- `/acp spawn <agent> --bind here` прив’язує поточний чат LINE до сеансу ACP без створення дочірньої гілки.
- Налаштовані прив’язування ACP й активні сеанси ACP, прив’язані до розмови, працюють у LINE так само, як в інших каналах розмов.

Докладніше див. у розділі [Агенти ACP](/uk/tools/acp-agents).

## Вихідні медіафайли

Plugin 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`, якщо розмір медіафайлів перевищує
  типове обмеження.

## Пов’язані матеріали

- [Огляд каналів](/uk/channels) — усі підтримувані канали
- [Спарювання](/uk/channels/pairing) — автентифікація особистих повідомлень і процес спарювання
- [Групи](/uk/channels/groups) — поведінка групових чатів і обмеження за згадуваннями
- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сеансів для повідомлень
- [Безпека](/uk/gateway/security) — модель доступу й посилення захисту
