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.
Instalación de Plugin Requerida
Instala el plugin de LINE:
ChannelsLinePage.step01.code1
ChannelsLinePage.step01.p2
ChannelsLinePage.step01.code2
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):
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.'' y actualiza la URL en consecuencia.
Configuration
Minimal configuration:
{
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:
{
channels: {
line: {
tokenFile: "/path/to/line-token.txt",
secretFile: "/path/to/line-secret.txt",
},
},
}Multiple accounts:
{
channels: {
line: {
accounts: {
marketing: {
channelAccessToken: "...",
channelSecret: "...",
webhookPath: "/line/marketing",
},
},
},
},
}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.
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.''
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
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).
Datos de Canal (Mensajes Enriquecidos)
Usa channelData.line para enviar respuestas rápidas, ubicación, tarjetas Flex o mensajes de plantilla.
{
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:
/card info "Bienvenido" "¡Gracias por unirte!"
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.