LINE
LINE (plugin)
Section intitulée « LINE (plugin) »LINE se connecte à OpenClaw via l’API de messagerie LINE. Le plugin fonctionne en tant que récepteur de webhook sur la passerelle et utilise votre jeton d’accès channel + secret channel pour l’authentification.
Statut : pris en charge via un plugin. Les messages directs, les discussions de groupe, les médias, les localisations, les messages Flex, les modèles de messages et les réponses rapides sont pris en charge. Les réactions et les fils de discussion ne sont pas pris en charge.
Plugin requis
Section intitulée « Plugin requis »Installez le plugin LINE :
openclaw plugins install @openclaw/lineExtraction locale (lors de l’exécution depuis un dépôt git) :
openclaw plugins install ./path/to/local/line-pluginConfiguration
Section intitulée « Configuration »- Create a LINE Developers account and open the Console: https://developers.line.biz/console/
- Créez (ou sélectionnez) un fournisseur et ajoutez un channel Messaging API.
- Copiez le Channel access token et le Channel secret à partir des paramètres du channel.
- Activez Use webhook dans les paramètres de l’API de messagerie.
- Définissez l’URL du webhook sur votre point de terminaison de passerelle (HTTPS requis) :
https://gateway-host/line/webhookLa passerelle répond à la vérification du webhook de LINE (GET) et aux événements entrants (POST).
Si vous avez besoin d’un chemin personnalisé, définissez channels.line.webhookPath ou
channels.line.accounts.<id>.webhookPath et mettez à jour l’URL en conséquence.
Note de sécurité :
- La vérification de la signature LINE dépend du corps (HMAC sur le corps brut), donc OpenClaw applique des limites strictes de corps et de délai d’attente pré-authentification avant la vérification.
- OpenClaw traite les événements webhook à partir des octets bruts de la demande vérifiée. Les valeurs
req.bodytransformées par le middleware en amont sont ignorées pour la sécurité de l’intégrité de la signature.
Configurer
Section intitulée « Configurer »Configuration minimale :
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Variables d’environnement (compte par défaut uniquement) :
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Fichiers de jeton/secrète :
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile et secretFile doivent pointer vers des fichiers réguliers. Les liens symboliques sont rejetés.
Comptes multiples :
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Contrôle d’accès
Section intitulée « Contrôle d’accès »Les messages directs sont par défaut en mode appairage. Les expéditeurs inconnus reçoivent un code d’appairage et leurs messages sont ignorés jusqu’à approbation.
openclaw pairing list lineopenclaw pairing approve line <CODE>Listes d’autorisation et stratégies :
channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: identifiants utilisateur LINE autorisés pour les MDschannels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: identifiants utilisateur LINE autorisés pour les groupes- Remplacements par groupe :
channels.line.groups.<groupId>.allowFrom - Note d’exécution : si
channels.lineest complètement manquant, l’exécution revient àgroupPolicy="allowlist"pour les vérifications de groupe (même sichannels.defaults.groupPolicyest défini).
Les identifiants LINE sont sensibles à la casse. Les identifiants valides ressemblent à :
- Utilisateur :
U+ 32 caractères hexadécimaux - Groupe :
C+ 32 caractères hexadécimaux - Salon :
R+ 32 caractères hexadécimaux
Comportement des messages
Section intitulée « Comportement des messages »- Le texte est découpé en blocs de 5000 caractères.
- Le formatage Markdown est supprimé ; les blocs de code et les tableaux sont convertis en cartes Flex lorsque cela est possible.
- Les réponses en streaming sont mises en mémoire tampon ; LINE reçoit des blocs complets avec une animation de chargement pendant que l’agent travaille.
- Les téléchargements de médias sont limités par
channels.line.mediaMaxMb(par défaut 10).
Données de canal (messages enrichis)
Section intitulée « Données de canal (messages enrichis) »Utilisez channelData.line pour envoyer des réponses rapides, des lieux, des cartes Flex ou des modèles de 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", }, }, },}Le plugin LINE inclut également une commande /card pour les préréglages de messages Flex :
/card info "Welcome" "Thanks for joining!"Prise en charge de l’ACP
Section intitulée « Prise en charge de l’ACP »LINE prend en charge les liaisons de conversation ACP (Agent Communication Protocol) :
/acp spawn <agent> --bind herelie la conversation LINE actuelle à une session ACP sans créer de fil de discussion enfant.- Les liaisons ACP configurées et les sessions ACP liées à des conversations actives fonctionnent sur LINE comme sur les autres canaux de conversation.
Consultez la page sur les agents ACP pour plus de détails.
Médias sortants
Section intitulée « Médias sortants »Le plugin LINE prend en charge l’envoi d’images, de vidéos et de fichiers audio via l’outil de message de l’agent. Les médias sont envoyés via le chemin de livraison spécifique à LINE avec une gestion appropriée de l’aperçu et du suivi :
- Images : envoyées sous forme de messages image LINE avec génération automatique d’aperçu.
- Vidéos : envoyées avec un aperçu explicite et une gestion du type de contenu.
- Audio : envoyé sous forme de messages audio LINE.
Les envois de médias génériques reviennent à l’itinéraire existant réservé aux images lorsqu’un chemin spécifique à LINE n’est pas disponible.
Dépannage
Section intitulée « Dépannage »- Échec de la vérification du webhook : assurez-vous que l’URL du webhook est HTTPS et que le
channelSecretcorrespond à la console LINE. - Aucun événement entrant : confirmez que le chemin du webhook correspond à
channels.line.webhookPathet que la passerelle est accessible depuis LINE. - Erreurs de téléchargement de médias : déclenchez
channels.line.mediaMaxMbsi les médias dépassent la limite par défaut.
Connexes
Section intitulée « Connexes »- Vue d’ensemble des canaux — tous les canaux pris en charge
- Appairage — authentification DM et flux d’appairage
- Groupes — comportement de chat de groupe et filtrage des mentions
- Routage de canal — routage de session pour les messages
- Sécurité — modèle d’accès et renforcement