Regional platforms
LINE
LINE maakt verbinding met OpenClaw via de LINE Messaging API. De plugin draait als Webhook-ontvanger op de Gateway en gebruikt je kanaaltoegangstoken + kanaalgeheim voor authenticatie.
Status: officiële plugin, afzonderlijk geïnstalleerd. Directe berichten, groepschats, media, locaties, Flex-berichten, sjabloonberichten en snelle antwoorden worden ondersteund. Reacties en threads worden niet ondersteund.
Installeren
Installeer LINE voordat je het kanaal configureert:
openclaw plugins install @openclaw/lineLokale checkout (bij uitvoering vanuit een git-repository):
openclaw plugins install ./path/to/local/line-pluginInstellen
- Maak een LINE Developers-account en open de Console: https://developers.line.biz/console/
- Maak (of kies) een Provider en voeg een Messaging API-kanaal toe.
- Kopieer het Channel access token en Channel secret uit de kanaalinstellingen.
- Schakel Use webhook in bij de Messaging API-instellingen.
- Stel de Webhook-URL in op je Gateway-eindpunt (HTTPS vereist):
https://gateway-host/line/webhookDe Gateway beantwoordt de Webhook-verificatie van LINE (GET) en bevestigt ondertekende inkomende gebeurtenissen (POST) onmiddellijk na validatie van de handtekening en payload; de verwerking door de agent gaat asynchroon verder.
Als je een aangepast pad nodig hebt, stel je channels.line.webhookPath of channels.line.accounts.<id>.webhookPath in en werk je de URL dienovereenkomstig bij.
Beveiligingsopmerkingen:
- De handtekeningverificatie van LINE is afhankelijk van de berichttekst (HMAC over de onbewerkte berichttekst), daarom past OpenClaw vóór authenticatie een strikte limiet voor de berichttekst (64 KB) en een leestime-out toe.
- OpenClaw verwerkt Webhook-gebeurtenissen vanuit de geverifieerde onbewerkte aanvraagbytes. Door upstream-middleware getransformeerde
req.body-waarden worden genegeerd om de integriteit van de handtekening te waarborgen.
Configureren
Minimale configuratie:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Openbare DM-configuratie:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "open", allowFrom: ["*"], }, },}Omgevingsvariabelen (alleen standaardaccount):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Token-/geheimbestanden:
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile en secretFile moeten naar gewone bestanden verwijzen. Symbolische koppelingen worden geweigerd.
Inline-configuratiewaarden hebben voorrang op bestanden; omgevingsvariabelen zijn de laatste terugvaloptie voor het standaardaccount.
Meerdere accounts:
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Toegangsbeheer
Directe berichten gebruiken standaard koppeling. Onbekende afzenders krijgen een koppelingscode en hun berichten worden genegeerd totdat ze zijn goedgekeurd:
openclaw pairing list lineopenclaw pairing approve line <CODE>Toelatingslijsten en beleidsregels:
channels.line.dmPolicy:pairing | allowlist | open | disabled(standaardpairing)channels.line.allowFrom: toegestane LINE-gebruikers-ID's voor DM's;dmPolicy: "open"vereist["*"]channels.line.groupPolicy:allowlist | open | disabled(standaardallowlist)channels.line.groupAllowFrom: toegestane LINE-gebruikers-ID's voor groepen- Overschrijvingen per groep:
channels.line.groups.<groupId>.allowFrom(plusenabled,requireMention,systemPrompt,skills) - Naar statische afzendertoegangsgroepen kan vanuit
allowFrom,groupAllowFromenallowFromper groep worden verwezen metaccessGroup:<name>; zie Toegangsgroepen. - Opmerking over de uitvoering: als
channels.linevolledig ontbreekt, valt de uitvoering voor groepscontroles terug opgroupPolicy="allowlist"(zelfs alschannels.defaults.groupPolicyis ingesteld).
LINE-ID's zijn hoofdlettergevoelig. Geldige ID's zien er als volgt uit:
- Gebruiker:
U+ 32 hexadecimale tekens - Groep:
C+ 32 hexadecimale tekens - Ruimte:
R+ 32 hexadecimale tekens
Berichtgedrag
- Tekst wordt opgesplitst in delen van 5000 tekens.
- Markdown-opmaak wordt verwijderd; codeblokken en tabellen worden waar mogelijk omgezet in Flex-kaarten.
- Streamingantwoorden worden gebufferd; LINE ontvangt volledige delen met een laadanimatie terwijl de agent werkt.
- Mediadownloads worden beperkt door
channels.line.mediaMaxMb(standaard 10). - Inkomende media worden opgeslagen onder
~/.openclaw/media/inbound/voordat ze aan de agent worden doorgegeven, overeenkomstig de gedeelde mediaopslag die door andere kanaalplugins wordt gebruikt.
Kanaalgegevens (rijke berichten)
Gebruik channelData.line om snelle antwoorden, locaties, Flex-kaarten of sjabloonberichten te verzenden.
{ 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", }, }, },}De LINE-plugin levert ook een /card-opdracht voor voorinstellingen van Flex-berichten:
/card info "Welcome" "Thanks for joining!"ACP-ondersteuning
LINE ondersteunt gesprekskoppelingen met ACP (Agent Communication Protocol):
/acp spawn <agent> --bind herekoppelt de huidige LINE-chat aan een ACP-sessie zonder een onderliggende thread te maken.- Geconfigureerde ACP-koppelingen en actieve, aan gesprekken gekoppelde ACP-sessies werken op LINE net als op andere gesprekskanalen.
Zie ACP-agenten voor meer informatie.
Uitgaande media
De LINE-plugin verzendt afbeeldingen, video's en audio via het berichtgereedschap van de agent:
- Afbeeldingen: verzonden als LINE-afbeeldingsberichten; de voorbeeldafbeelding gebruikt standaard de media-URL.
- Video's: vereisen een voorbeeldafbeelding; stel
channelData.line.previewImageUrlin op een afbeeldings-URL. - Audio: verzonden als LINE-audioberichten; de duur is standaard 60 seconden, tenzij
channelData.line.durationMsis ingesteld.
Het mediatype wordt overgenomen uit channelData.line.mediaKind wanneer dit is ingesteld, en anders afgeleid uit de overige LINE-opties of het bestandsachtervoegsel van de URL, met afbeelding als terugvaloptie.
URL's voor uitgaande media moeten openbare HTTPS-URL's van maximaal 2000 tekens zijn. OpenClaw valideert de doelhostnaam voordat de URL aan LINE wordt doorgegeven en weigert local loopback-, link-local- en privénetwerkdoelen.
Algemene mediaverzendingen zonder LINE-specifieke opties gebruiken de afbeeldingsroute.
Problemen oplossen
- Webhook-verificatie mislukt: zorg dat de Webhook-URL HTTPS gebruikt en dat
channelSecretovereenkomt met de LINE Console. - Geen inkomende gebeurtenissen: controleer of het Webhook-pad overeenkomt met
channels.line.webhookPathen of de Gateway bereikbaar is vanuit LINE. - Fouten bij het downloaden van media: verhoog
channels.line.mediaMaxMbals media de standaardlimiet overschrijden.
Gerelateerd
- Overzicht van kanalen — alle ondersteunde kanalen
- Koppeling — DM-authenticatie en koppelingsproces
- Groepen — gedrag van groepschats en vereiste vermeldingen
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en beveiliging aanscherpen