OpenClaw

Canal LINE de OpenClaw

Mensajería
Medio

Conecta OpenClaw a LINE usando la API oficial de Messaging. Esta integración basada en plugin permite que tu asistente de IA envíe y reciba mensajes en LINE — una de las plataformas de mensajería más populares en Japón, Taiwán, Tailandia y el sudeste asiático. OpenClaw recibe eventos mediante webhook y responde a través de la API de Messaging, soportando tipos de mensajes enriquecidos incluyendo Flex Messages, mensajes de plantilla, respuestas rápidas y compartición de medios.

Info rápida
DificultadMedio
CategoríaMensajería
Funciones compatibles3 / 6

LINE Funciones compatibles

Mensajes de texto

Compatible

Medios y archivos

Compatible

Reacciones

No compatible

Hilos

No compatible

Mensajes de voz

No compatible

Chat grupal

Compatible

LINE Requisitos previos

  • Una cuenta de LINE Developers (gratuita en developers.line.biz)
  • Un Provider y un canal de Messaging API creados en la Consola de LINE Developers
  • Token de acceso del canal y secreto del canal de la configuración de tu canal de Messaging API
  • OpenClaw Gateway en funcionamiento y accesible mediante una URL HTTPS pública (requerida para el webhook)
  • El plugin de LINE instalado: openclaw plugins install @openclaw/line

LINE Configuración rápida

1

Crear un canal de LINE Messaging API

Inicia sesión en la Consola de LINE Developers, crea un Provider (o selecciona uno existente), luego crea un nuevo canal de Messaging API. Anota tu Channel ID, Channel secret, y emite un Channel access token desde la página de configuración del canal.

2

Instalar el plugin de LINE y agregar configuración

Ejecuta 'openclaw plugins install @openclaw/line' para instalar el plugin de LINE. Luego agrega la configuración del canal LINE a ~/.openclaw/openclaw.json con tu channelAccessToken y channelSecret. También puedes usar las variables de entorno LINE_CHANNEL_ACCESS_TOKEN y LINE_CHANNEL_SECRET.

3

Configurar la URL del webhook

En la Consola de LINE Developers, navega a la pestaña Messaging API de tu canal. Establece la URL del webhook como 'https://<your-gateway-host>/line/webhook' y habilita 'Use webhook'. Haz clic en Verify para confirmar que el endpoint es accesible. Deshabilita las respuestas automáticas y los mensajes de bienvenida en el LINE Official Account Manager para evitar respuestas duplicadas.

4

Enviar un mensaje de prueba

Agrega tu bot de LINE como amigo escaneando su código QR (disponible en la Consola). Envía un mensaje al bot. Si usas la política pairing por defecto, aprueba al remitente mediante 'openclaw pairing approve line <code>' en tu terminal.

LINE Ejemplo de configuración

config.json
{
  "channels": {
    "line": {
      "enabled": true,
      "channelAccessToken": "YOUR_CHANNEL_ACCESS_TOKEN",
      "channelSecret": "YOUR_CHANNEL_SECRET",
      "dmPolicy": "pairing"
    }
  }
}

LINE Documentación Detallada

Descripción general de la arquitectura

OpenClaw se integra con LINE a través de la API oficial de Messaging — una arquitectura basada en webhooks donde la plataforma LINE envía eventos (mensajes, follows, joins) a tu Gateway, y OpenClaw responde usando la API REST. El flujo es: El usuario envía un mensaje → Plataforma LINE → POST de webhook a tu Gateway → OpenClaw procesa con IA → respuesta mediante la API de Messaging → Plataforma LINE → El usuario recibe la respuesta. A diferencia de protocolos obtenidos por ingeniería inversa, la API de Messaging está oficialmente soportada por LINE Corporation, proporcionando endpoints estables y documentados con compatibilidad garantizada. OpenClaw maneja la verificación de firma del webhook (HMAC-SHA256 usando tu secreto del canal) automáticamente para asegurar que todos los eventos entrantes son auténticos. El plugin de LINE se instala por separado mediante 'openclaw plugins install @openclaw/line'. Esta arquitectura modular mantiene el Gateway central ligero mientras permite que las funcionalidades específicas de LINE se mantengan de forma independiente.
Tu Gateway debe ser accesible mediante una URL HTTPS pública con un certificado SSL válido. Los certificados autofirmados no son aceptados por el sistema de webhooks de LINE.
Para configuraciones multi-cuenta, cada cuenta puede tener un webhookPath personalizado para recibir eventos en diferentes endpoints del mismo Gateway.

Configuración de la Consola de LINE Developers

Configurar el bot de LINE requiere crear los recursos adecuados en la Consola de LINE Developers: 1. Crear un Provider — Esto te representa a ti o a tu organización. Un provider puede contener múltiples canales. 2. Crear un canal de Messaging API — Elige el tipo Messaging API (no LINE Login). Completa los detalles requeridos: nombre del canal, descripción, categoría y subcategoría. 3. Emitir un Channel access token — Ve a la pestaña Messaging API en la configuración de tu canal y haz clic en 'Issue' para generar un token de acceso de larga duración. Este token autentica tus llamadas a la API. 4. Anotar el Channel secret — Se encuentra en la pestaña Basic Settings. Se usa para la verificación de firma del webhook. 5. Configurar el webhook — En la pestaña Messaging API, establece la URL del webhook al endpoint LINE de tu Gateway y habilita 'Use webhook'. 6. Deshabilitar respuesta automática — En el LINE Official Account Manager (enlazado desde la Consola), desactiva los mensajes de bienvenida y la respuesta automática para evitar conflictos con tu bot de IA. LINE usa formatos de ID específicos: los IDs de usuario comienzan con 'U' seguido de 32 caracteres hexadecimales, los IDs de grupo comienzan con 'C', y los IDs de sala comienzan con 'R'.
openclaw.json
{
  "channels": {
    "line": {
      "channelAccessToken": "YOUR_TOKEN",
      "channelSecret": "YOUR_SECRET"
    }
  }
}
Mantén tu secreto del canal y token de acceso seguros. Nunca los incluyas en el control de versiones. Usa variables de entorno (LINE_CHANNEL_ACCESS_TOKEN, LINE_CHANNEL_SECRET) o tokens basados en archivos (tokenFile, secretFile) para despliegues en producción.

Tokens de acceso del canal

LINE proporciona cuatro tipos de tokens de acceso de canal con diferentes duraciones y casos de uso: • Token de larga duración — No expira. Se emite desde la Consola. Solo puede existir uno por canal; re-emitirlo invalida el anterior. La opción más simple para bots autoalojados. • Token de corta duración (v2.1) — Expira en hasta 30 días. Se emite mediante API usando aserciones JWT. Hasta 30 tokens por canal. Recomendado para despliegues en producción donde se desea rotación de tokens. • Token sin estado — Expira en 15 minutos. Sin límite de emisión. No se puede revocar. Útil para escenarios de alta seguridad que requieren tiempos de vida de token muy cortos. • Corta duración (legado) — Expira en 30 días. Hasta 30 por canal; el más antiguo se revoca automáticamente cuando se alcanza el límite. OpenClaw soporta todos los tipos de token. Para la mayoría de las configuraciones autoalojadas, un token de larga duración es la opción más sencilla. Configúralo directamente en tu configuración o mediante la variable de entorno LINE_CHANNEL_ACCESS_TOKEN.
Para producción con rotación de tokens, usa la opción de configuración tokenFile para apuntar a un archivo que se actualiza mediante un proceso externo de actualización de tokens.
Evita emitir tokens con demasiada frecuencia — LINE puede restringir temporalmente la emisión si se crean demasiados tokens en un período corto.

Políticas de DM

Las políticas de DM (Mensaje Directo) controlan quién puede interactuar con tu bot de LINE en chats individuales. OpenClaw soporta cuatro políticas: • pairing (por defecto) — Los nuevos usuarios que envían un mensaje al bot reciben un código de emparejamiento aleatorio. Aprueba mediante 'openclaw pairing approve line <code>' en tu terminal. Una vez aprobados, pueden chatear libremente. Los códigos expiran después de 1 hora con un máximo de 3 solicitudes pendientes. • allowlist — Solo los IDs de usuario de LINE listados en allowFrom pueden enviar mensajes al bot. Los demás son ignorados silenciosamente. Los IDs de usuario de LINE siguen el formato 'U' + 32 caracteres hexadecimales. • open — Cualquiera que agregue al bot como amigo y envíe un mensaje recibe respuesta. Requiere agregar '*' a allowFrom como confirmación de seguridad. • disabled — La funcionalidad de DM está completamente desactivada. Para encontrar el ID de LINE de un usuario, revisa los logs del Gateway cuando envían un mensaje — el userId de origen se registra con cada evento de webhook.
openclaw.json
{
  "channels": {
    "line": {
      "dmPolicy": "allowlist",
      "allowFrom": ["U1234567890abcdef1234567890abcdef"]
    }
  }
}
Los IDs de usuario de LINE son únicos por Provider — el mismo usuario físico tiene diferentes IDs en diferentes Providers. Asegúrate de que tus IDs en allowFrom coincidan con el Provider correcto.
Usa 'openclaw pairing list line' para ver todas las solicitudes de emparejamiento pendientes y sus códigos.

Gestión de chats grupales

OpenClaw soporta chats grupales de LINE y chats multipersona con control de acceso configurable: • disabled (por defecto) — Ignorar todos los mensajes de grupo y sala • open — Responder a mensajes de todos los miembros del grupo • allowlist — Solo los IDs de usuario aprobados (mediante groupAllowFrom) pueden activar el bot en grupos Cuando un bot de LINE se une a un grupo, recibe un evento 'join'. Las conversaciones de grupo están aisladas de los DMs — cada grupo mantiene su propio contexto de conversación e historial. Los IDs de grupo en LINE siguen el formato 'C' + 32 caracteres hexadecimales. Los IDs de sala usan 'R' + 32 caracteres hexadecimales. Puedes encontrarlos en los logs del Gateway cuando se reciben mensajes de grupo. Nota: El bot debe ser agregado al grupo por un miembro. Los bots de LINE no pueden unirse a grupos por sí solos.
openclaw.json
{
  "channels": {
    "line": {
      "groupPolicy": "open",
      "historyLimit": 50
    }
  }
}

Mensajes enriquecidos: Flex y plantillas

LINE soporta tipos de mensajes enriquecidos más allá del texto plano, y OpenClaw los aprovecha: • Flex Messages — Diseños de tarjetas altamente personalizables usando una estructura JSON. OpenClaw convierte automáticamente los bloques de código en las respuestas de IA a tarjetas Flex Message cuando es posible. También puedes usar el comando '/card' para generar plantillas Flex predefinidas. • Template Messages — Mensajes estructurados con botones, carruseles, confirmaciones y carruseles de imágenes. Útiles para presentar opciones a los usuarios. • Quick Replies — Hasta 13 botones de acción mostrados debajo de un mensaje. Soporta acciones de mensaje, acciones URI, acciones postback, selectores de fecha/hora, acciones de cámara/galería y acciones de ubicación. Las respuestas rápidas desaparecen después de que el usuario toca una. • Stickers — La función característica de LINE. Los bots pueden enviar stickers oficiales especificando packageId y stickerId. Solo los stickers de la lista publicada de stickers enviables de LINE están disponibles mediante la API. • Mensajes de ubicación — Compartir coordenadas de latitud/longitud con una etiqueta de dirección. El formato Markdown se elimina automáticamente de las respuestas de IA ya que LINE no lo soporta nativamente. Los bloques de código se convierten a tarjetas Flex para mejor legibilidad.
Usa el Simulador de Flex Message de LINE (disponible en la Consola) para diseñar y previsualizar diseños Flex personalizados antes de programarlos.
Las respuestas rápidas solo son soportadas en LINE para iOS y Android — no aparecerán en clientes de escritorio o web.

Medios y adjuntos

OpenClaw maneja archivos multimedia en LINE incluyendo imágenes, video, audio y archivos. El contenido multimedia recibido de los usuarios se descarga y procesa automáticamente por el Gateway. Los medios entrantes se obtienen de la API de contenido de LINE y se pasan a la IA para procesamiento (ej., análisis de imágenes). El tamaño máximo de archivo por defecto es 10 MB (configurable mediante mediaMaxMb). Los medios salientes se suben a través de la API de Messaging. LINE soporta: • Imágenes — JPEG y PNG hasta 10 MB • Video — MP4 hasta 200 MB (1 minuto máximo en algunos contextos) • Audio — M4A hasta 200 MB LINE usa una API de recuperación de contenido con IDs de mensaje — el contenido multimedia no se incluye directamente en los payloads del webhook sino que debe obtenerse por separado. OpenClaw maneja esto automáticamente.
openclaw.json
{
  "channels": {
    "line": {
      "mediaMaxMb": 10
    }
  }
}

Seguridad del webhook

LINE usa verificación de firma HMAC-SHA256 para asegurar que los eventos del webhook son auténticos. Cada solicitud de webhook incluye un encabezado 'x-line-signature' que contiene un resumen HMAC-SHA256 codificado en Base64 del cuerpo de la solicitud, calculado usando tu secreto del canal como clave. OpenClaw verifica automáticamente esta firma para cada evento de webhook entrante. Si la verificación falla, el evento se rechaza con un estado 403. Esto previene que eventos falsificados o manipulados sean procesados. Importante: La firma se calcula sobre la cadena del cuerpo de la solicitud sin procesar. No analices, deserialices ni reformatees el JSON antes de la verificación. OpenClaw maneja esto correctamente — solo asegúrate de que tu proxy inverso o balanceador de carga no modifique el cuerpo de la solicitud antes de que llegue al Gateway.
Si la verificación del webhook sigue fallando, verifica que tu channelSecret coincida con el valor en la Consola de LINE Developers (pestaña Basic Settings).
Usa el botón 'Verify' en la Consola para probar tu endpoint de webhook. Envía un evento de prueba con un array de eventos vacío.

Indicadores de carga y entrega

OpenClaw envía indicadores de carga (animaciones de escritura) mientras genera respuestas de IA. La API de indicador de carga de LINE muestra un spinner en el chat durante hasta 60 segundos, proporcionando retroalimentación visual de que el bot está procesando. Para respuestas largas de IA, el texto se fragmenta automáticamente a 5.000 caracteres por mensaje (el límite de tamaño de mensaje de LINE). La fragmentación es transparente para los usuarios — reciben múltiples mensajes consecutivos. El streaming se almacena en búfer hasta completarse — LINE no soporta entrega de mensajes en streaming como algunas otras plataformas. La respuesta completa se genera primero, luego se envía como uno o más mensajes. La API de Messaging de LINE soporta el envío de hasta 5 objetos de mensaje en una sola respuesta. OpenClaw optimiza la entrega agrupando mensajes cortos cuando es posible.
openclaw.json
{
  "channels": {
    "line": {
      "textChunkLimit": 5000,
      "chunkMode": "newline"
    }
  }
}

Configuración multi-cuenta

OpenClaw soporta la ejecución de múltiples cuentas de bot de LINE en una sola instancia del Gateway. Cada cuenta tiene sus propias credenciales, ruta de webhook y anulaciones de configuración. Esto es útil para ejecutar diferentes personalidades de IA en diferentes cuentas de LINE, o separar bots de producción y staging en la misma infraestructura. Cada cuenta recibe eventos de webhook en su propia ruta: /line/<accountId>/webhook (en lugar del /line/webhook por defecto). Configura la URL de webhook correspondiente en la Consola de LINE Developers de cada cuenta.
openclaw.json
{
  "channels": {
    "line": {
      "accounts": {
        "main": {
          "channelAccessToken": "TOKEN_1",
          "channelSecret": "SECRET_1",
          "webhookPath": "/line/main/webhook"
        },
        "support": {
          "channelAccessToken": "TOKEN_2",
          "channelSecret": "SECRET_2",
          "webhookPath": "/line/support/webhook"
        }
      }
    }
  }
}

LINE Referencia de Configuración

enabled
Type: booleanDefault: true

Habilitar o deshabilitar el canal LINE

channelAccessToken
Type: stringDefault: ""

Token de acceso del canal de LINE Messaging API. También se puede usar la variable de entorno LINE_CHANNEL_ACCESS_TOKEN

channelSecret
Type: stringDefault: ""

Secreto del canal LINE para verificación de firma del webhook. También se puede usar la variable de entorno LINE_CHANNEL_SECRET

tokenFile
Type: stringDefault: ""

Ruta a un archivo que contiene el token de acceso del canal (alternativa a la configuración inline)

secretFile
Type: stringDefault: ""

Ruta a un archivo que contiene el secreto del canal (alternativa a la configuración inline)

dmPolicy
Type: stringDefault: "pairing"

Controla quién puede enviar DMs al bot. Opciones: pairing, allowlist, open, disabled

allowFrom
Type: string[]Default: []

IDs de usuario de LINE (U + 32 hex) autorizados para enviar mensajes al bot cuando dmPolicy es allowlist

dmHistoryLimit
Type: numberDefault: 50

Número de mensajes DM recientes a incluir como contexto de IA por conversación

groupPolicy
Type: stringDefault: "disabled"

Política de chat grupal. Opciones: disabled, allowlist, open

groupAllowFrom
Type: string[]Default: []

IDs de usuario de LINE autorizados para activar el bot en grupos (cuando groupPolicy es allowlist)

historyLimit
Type: numberDefault: 50

Máximo de mensajes de grupo incluidos como contexto de IA. Establecer en 0 para deshabilitar

textChunkLimit
Type: numberDefault: 5000

Máximo de caracteres por mensaje saliente antes de fragmentar

chunkMode
Type: stringDefault: "length"

Modo de fragmentación de texto. Opciones: length (división estricta), newline (consciente de párrafos)

mediaMaxMb
Type: numberDefault: 10

Tamaño máximo de archivo multimedia entrante en megabytes

webhookPath
Type: stringDefault: "/line/webhook"

Ruta personalizada del webhook para esta cuenta (útil en configuraciones multi-cuenta)

accounts.<id>.channelAccessToken
Type: stringDefault: ""

Token de acceso del canal por cuenta para configuraciones multi-cuenta

accounts.<id>.channelSecret
Type: stringDefault: ""

Secreto del canal por cuenta para configuraciones multi-cuenta

accounts.<id>.webhookPath
Type: stringDefault: "/line/<id>/webhook"

Ruta del webhook por cuenta para configuraciones multi-cuenta

configWrites
Type: booleanDefault: true

Permitir que los comandos /config modifiquen la configuración del canal en tiempo de ejecución

LINE Preguntas Frecuentes

LINE Solución de Problemas

La verificación del webhook falla en la Consola de LINE

El Gateway no es accesible desde Internet, la URL es incorrecta, o hay problemas con el certificado SSL.

Verifica que tu Gateway esté ejecutándose y sea accesible mediante la URL pública. Asegúrate de que la URL sea exactamente 'https://<host>/line/webhook' con un certificado SSL válido (no autofirmado). Revisa las reglas del firewall y el reenvío de puertos. Prueba con 'curl -X POST https://<host>/line/webhook' desde una máquina externa.
El bot está agregado como amigo pero no responde a los mensajes

El webhook no está habilitado en la Consola, la respuesta automática está interfiriendo, o el remitente no ha sido aprobado mediante la política de emparejamiento.

En la Consola de LINE Developers, confirma que 'Use webhook' está habilitado en la pestaña Messaging API. En el LINE Official Account Manager, deshabilita tanto la respuesta automática como los mensajes de bienvenida. Si usas la política pairing, verifica los emparejamientos pendientes con 'openclaw pairing list line' y aprueba al remitente.
Error 401 Unauthorized al enviar respuestas

El token de acceso del canal es inválido, ha expirado o fue revocado.

Ve a la Consola de LINE Developers, navega a la pestaña Messaging API de tu canal, y emite un nuevo token de acceso del canal. Actualiza tu configuración de OpenClaw o la variable de entorno LINE_CHANNEL_ACCESS_TOKEN con el nuevo token. Si usas rotación de tokens, verifica que tu proceso de actualización esté funcionando correctamente.
Los mensajes se reciben pero las respuestas muestran 'Invalid reply token'

Los tokens de respuesta de LINE expiran 1 minuto después de que se envía el evento de webhook. Si el procesamiento de IA tarda más, el token se vuelve inválido.

Esta es una limitación de la plataforma LINE. OpenClaw usa mensajes push como alternativa cuando los tokens de respuesta expiran. Asegúrate de que tu channelAccessToken tenga permisos de mensajes push y que no hayas excedido tu cuota mensual de mensajes push.
Error de validación de firma en webhooks entrantes

El channelSecret en tu configuración no coincide con el secreto del canal en la Consola de LINE Developers, o un proxy inverso está modificando el cuerpo de la solicitud.

Verifica que el valor de channelSecret coincida con el 'Channel secret' mostrado en la pestaña Basic Settings de tu Consola de LINE Developers. Si usas un proxy inverso (nginx, Apache), asegúrate de que reenvíe el cuerpo de la solicitud sin modificar. Comprueba que el Content-Type se preserve como application/json.