Regional platforms
LINE
LINE se connecte à OpenClaw via la LINE Messaging API. Le Plugin s’exécute comme récepteur Webhook sur le Gateway et utilise votre jeton d’accès au canal + secret de canal pour l’authentification.
Statut : Plugin téléchargeable. Les messages directs, les discussions de groupe, les médias, les emplacements, les messages Flex, les messages de modèle et les réponses rapides sont pris en charge. Les réactions et les fils ne sont pas pris en charge.
Installer
Installez LINE avant de configurer le canal :
openclaw plugins install @openclaw/lineCheckout local (lors de l’exécution depuis un dépôt git) :
openclaw plugins install ./path/to/local/line-pluginConfiguration
- Créez un compte LINE Developers et ouvrez la Console : https://developers.line.biz/console/
- Créez (ou choisissez) un Provider et ajoutez un canal Messaging API.
- Copiez le Channel access token et le Channel secret depuis les paramètres du canal.
- Activez Use webhook dans les paramètres de Messaging API.
- Définissez l’URL du Webhook sur votre point de terminaison Gateway (HTTPS requis) :
https://gateway-host/line/webhookLe Gateway répond à la vérification Webhook de LINE (GET) et accuse réception des
événements entrants signés (POST) immédiatement après la validation de la signature
et de la charge utile ; le traitement par l’agent continue de façon asynchrone.
Si vous avez besoin d’un chemin personnalisé, définissez channels.line.webhookPath ou
channels.line.accounts.<id>.webhookPath et mettez l’URL à jour en conséquence.
Note de sécurité :
- La vérification de signature LINE dépend du corps (HMAC sur le corps brut), donc OpenClaw applique des limites strictes de corps avant authentification et un délai d’expiration avant la vérification.
- OpenClaw traite les événements Webhook à partir des octets bruts vérifiés de la requête. Les valeurs
req.bodytransformées par un middleware en amont sont ignorées pour préserver l’intégrité de la signature.
Configurer
Configuration minimale :
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Configuration DM publique :
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "open", allowFrom: ["*"], }, },}Variables d’environnement (compte par défaut uniquement) :
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Fichiers de jeton/secret :
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile et secretFile doivent pointer vers des fichiers ordinaires. Les liens symboliques sont rejetés.
Comptes multiples :
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Contrôle d’accès
Les messages directs utilisent l’appairage par défaut. 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: IDs utilisateur LINE autorisés pour les DM ;dmPolicy: "open"nécessite["*"]channels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: IDs utilisateur LINE autorisés pour les groupes- Remplacements par groupe :
channels.line.groups.<groupId>.allowFrom - Les groupes d’accès d’expéditeur statiques peuvent être référencés depuis
allowFrom,groupAllowFromet leallowFrompar groupe avecaccessGroup:<name>. - Note d’exécution : si
channels.lineest complètement absent, l’exécution revient àgroupPolicy="allowlist"pour les vérifications de groupe (même sichannels.defaults.groupPolicyest défini).
Les IDs LINE sont sensibles à la casse. Les IDs valides ressemblent à ceci :
- Utilisateur :
U+ 32 caractères hexadécimaux - Groupe :
C+ 32 caractères hexadécimaux - Salon :
R+ 32 caractères hexadécimaux
Comportement des messages
- Le texte est découpé en morceaux de 5000 caractères.
- La mise en forme Markdown est supprimée ; les blocs de code et les tableaux sont convertis en cartes Flex lorsque c’est possible.
- Les réponses en streaming sont mises en tampon ; LINE reçoit des morceaux complets avec une animation de chargement pendant que l’agent travaille.
- Les téléchargements de médias sont plafonnés par
channels.line.mediaMaxMb(10 par défaut). - Les médias entrants sont enregistrés sous
~/.openclaw/media/inbound/avant d’être transmis à l’agent, conformément au magasin de médias partagé utilisé par les autres Plugins de canal groupés.
Données de canal (messages enrichis)
Utilisez channelData.line pour envoyer des réponses rapides, des emplacements, des cartes Flex ou des messages
de modèle.
{ 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 fournit également une commande /card pour les préréglages de messages Flex :
/card info "Welcome" "Thanks for joining!"Prise en charge d’ACP
LINE prend en charge les liaisons de conversation ACP (Agent Communication Protocol) :
/acp spawn <agent> --bind herelie la discussion LINE actuelle à une session ACP sans créer de fil enfant.- Les liaisons ACP configurées et les sessions ACP actives liées à une conversation fonctionnent sur LINE comme sur les autres canaux de conversation.
Voir Agents ACP pour plus de détails.
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 propre à LINE avec une gestion appropriée des aperçus et du suivi :
- Images : envoyées comme messages image LINE avec génération automatique d’aperçu.
- Vidéos : envoyées avec gestion explicite de l’aperçu et du type de contenu.
- Audio : envoyé comme messages audio LINE.
Les URL des médias sortants doivent être des URL HTTPS publiques. OpenClaw valide le nom d’hôte cible avant de transmettre l’URL à LINE et rejette les cibles de bouclage, lien local et réseau privé.
Les envois de médias génériques reviennent à la route existante réservée aux images lorsqu’un chemin propre à LINE n’est pas disponible.
Dépannage
- La vérification du Webhook échoue : assurez-vous que l’URL du Webhook utilise HTTPS et que le
channelSecretcorrespond à la console LINE. - Aucun événement entrant : vérifiez que le chemin du Webhook correspond à
channels.line.webhookPathet que le Gateway est joignable depuis LINE. - Erreurs de téléchargement de médias : augmentez
channels.line.mediaMaxMbsi les médias dépassent la limite par défaut.
Connexe
- Vue d’ensemble des canaux — tous les canaux pris en charge
- Appairage — authentification DM et flux d’appairage
- Groupes — comportement des discussions de groupe et filtrage des mentions
- Routage des canaux — routage des sessions pour les messages
- Sécurité — modèle d’accès et durcissement