OpenClawSkills
GitHub
Canales • 5 min de lectura

LINE

Plugin de LINE Messaging API: instalación, configuración y uso.

LINE se integra con OpenClaw via LINE Messaging API. El plugin corre como un receptor de webhook en el gateway y autentica usando tu channel access token y channel secret.

Estado: Soportado via plugin. Soporta DMs, grupos, medios, ubicación, mensajes Flex, mensajes de plantilla y respuestas rápidas. No soporta reacciones e hilos.

Tutorial.step

Instalación de Plugin Requerida

Instala el plugin de LINE:

Bash
ChannelsLinePage.step01.code1

ChannelsLinePage.step01.p2

Bash
ChannelsLinePage.step01.code2
Tutorial.step

Setup

1. Register for LINE Developers and open the Console:

https://developers.line.biz/console/

2. Create (or select) a Provider and add a Messaging API channel.

3. Copy the Channel access token and Channel secret from the channel settings.

4. Enable Use webhook in the Messaging API settings.

5. Set the webhook URL to your gateway address (must be HTTPS):

Terminal
https://gateway-host/line/webhook

El gateway responderá a la verificación de webhook de LINE (GET) y eventos entrantes (POST).

Si necesitas una ruta personalizada, configura ''channels.line.webhookPath'' o ''channels.line.accounts.''.webhookPath'' y actualiza la URL en consecuencia.

Tutorial.step

Configuration

Minimal configuration:

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

Environment variables (default account only):

- LINE_CHANNEL_ACCESS_TOKEN

- LINE_CHANNEL_SECRET

Read token/secret from files:

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

Multiple accounts:

Json5
{
  channels: {
    line: {
      accounts: {
        marketing: {
          channelAccessToken: "...",
          channelSecret: "...",
          webhookPath: "/line/marketing",
        },
      },
    },
  },
}
Tutorial.step

Control de Acceso

Los DMs de LINE usan emparejamiento por defecto. Los remitentes desconocidos reciben un código de emparejamiento, y sus mensajes no se procesan hasta ser aprobados.

Bash
openclaw pairing list line
openclaw pairing approve line '<CODE>'

Lista permitida y políticas:

- channels.line.dmPolicy: pairing | allowlist | open | disabled

- channels.line.allowFrom: IDs de usuario de LINE permitidos para DMs

- channels.line.groupPolicy: allowlist | open | disabled

- channels.line.groupAllowFrom: IDs de usuario de LINE permitidos para activar grupos

- Sobrescritura por grupo: ''channels.line.groups.''.allowFrom''

Los IDs de LINE son sensibles a mayúsculas. Los formatos de ID válidos son típicamente:

- Usuario: U + 32 dígitos hex

- Grupo: C + 32 dígitos hex

- Sala: R + 32 dígitos hex

Tutorial.step

Comportamiento de Mensajes

- El texto se divide a los 5000 caracteres.

- El formato Markdown se elimina; los bloques de código y tablas se convierten en tarjetas Flex cuando es posible.

- Las respuestas de streaming se almacenan en buffer; LINE recibe texto segmentado completo con una animación de carga mientras el agente trabaja.

- El límite de descarga de medios está controlado por channels.line.mediaMaxMb (predeterminado 10MB).

Tutorial.step

Datos de Canal (Mensajes Enriquecidos)

Usa channelData.line para enviar respuestas rápidas, ubicación, tarjetas Flex o mensajes de plantilla.

Json5
{
  text: "Aquí tienes",
  channelData: {
    line: {
      quickReplies: ["Estado", "Ayuda"],
      location: {
        title: "Oficina",
        address: "Calle Principal 123",
        latitude: 35.681236,
        longitude: 139.767125,
      },
      flexMessage: {
        altText: "Tarjeta de estado",
        contents: {
          /* Payload Flex */
        },
      },
      templateMessage: {
        type: "confirm",
        text: "¿Proceder?",
        confirmLabel: "Sí",
        confirmData: "yes",
        cancelLabel: "No",
        cancelData: "no",
      },
    },
  },
}

El plugin de LINE también proporciona el comando /card para tarjetas Flex predefinidas:

Terminal
/card info "Bienvenido" "¡Gracias por unirte!"
Tutorial.step

Solución de Problemas

- Verificación de webhook fallida: Asegúrate que la URL del webhook es HTTPS y que channelSecret coincide con la Consola de LINE.

- Sin eventos entrantes: Asegúrate que la ruta del webhook coincide con channels.line.webhookPath y que el gateway es accesible desde LINE.

- Errores de descarga de medios: Si los medios exceden el límite predeterminado, aumenta channels.line.mediaMaxMb.