Regional platforms
LINE
LINE stellt über die LINE Messaging API eine Verbindung zu OpenClaw her. Das Plugin wird als Webhook-Empfänger auf dem Gateway ausgeführt und verwendet Ihr Channel-Zugriffstoken und Channel-Secret zur Authentifizierung.
Status: offizielles, separat installiertes Plugin. Direktnachrichten, Gruppenchats, Medien, Standorte, Flex-Nachrichten, Vorlagennachrichten und Schnellantworten werden unterstützt. Reaktionen und Threads werden nicht unterstützt.
Installation
Installieren Sie LINE, bevor Sie den Kanal konfigurieren:
openclaw plugins install @openclaw/lineLokaler Checkout (bei Ausführung aus einem Git-Repository):
openclaw plugins install ./path/to/local/line-pluginEinrichtung
- Erstellen Sie ein LINE Developers-Konto und öffnen Sie die Console: https://developers.line.biz/console/
- Erstellen oder wählen Sie einen Provider und fügen Sie einen Messaging API-Kanal hinzu.
- Kopieren Sie Channel access token und Channel secret aus den Kanaleinstellungen.
- Aktivieren Sie Use webhook in den Messaging API-Einstellungen.
- Legen Sie als Webhook-URL Ihren Gateway-Endpunkt fest (HTTPS erforderlich):
https://gateway-host/line/webhookDas Gateway beantwortet die Webhook-Verifizierung von LINE (GET) und bestätigt signierte eingehende Ereignisse (POST) unmittelbar nach der Signatur- und Nutzdatenvalidierung; die Verarbeitung durch den Agenten wird asynchron fortgesetzt.
Wenn Sie einen benutzerdefinierten Pfad benötigen, legen Sie channels.line.webhookPath oder channels.line.accounts.<id>.webhookPath fest und aktualisieren Sie die URL entsprechend.
Sicherheitshinweise:
- Die LINE-Signaturverifizierung hängt vom Nachrichtentext ab (HMAC über den unveränderten Nachrichtentext). Daher erzwingt OpenClaw vor der Authentifizierung eine strikte Größenbegrenzung von 64 KB und ein Zeitlimit für das Einlesen.
- OpenClaw verarbeitet Webhook-Ereignisse anhand der verifizierten unveränderten Anfragebytes. Durch vorgelagerte Middleware veränderte
req.body-Werte werden zum Schutz der Signaturintegrität ignoriert.
Konfiguration
Minimale Konfiguration:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Konfiguration für öffentliche Direktnachrichten:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "open", allowFrom: ["*"], }, },}Umgebungsvariablen (nur für das Standardkonto):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Token-/Secret-Dateien:
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile und secretFile müssen auf reguläre Dateien verweisen. Symbolische Links werden abgelehnt.
Direkt in der Konfiguration angegebene Werte haben Vorrang vor Dateien; Umgebungsvariablen dienen beim Standardkonto als letzte Ausweichmöglichkeit.
Mehrere Konten:
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Zugriffskontrolle
Direktnachrichten verwenden standardmäßig die Kopplung. Unbekannte Absender erhalten einen Kopplungscode, und ihre Nachrichten werden ignoriert, bis der Zugriff genehmigt wurde:
openclaw pairing list lineopenclaw pairing approve line <CODE>Positivlisten und Richtlinien:
channels.line.dmPolicy:pairing | allowlist | open | disabled(Standard:pairing)channels.line.allowFrom: für Direktnachrichten zugelassene LINE-Benutzer-IDs;dmPolicy: "open"erfordert["*"]channels.line.groupPolicy:allowlist | open | disabled(Standard:allowlist)channels.line.groupAllowFrom: für Gruppen zugelassene LINE-Benutzer-IDs- Gruppenspezifische Überschreibungen:
channels.line.groups.<groupId>.allowFrom(zusätzlichenabled,requireMention,systemPrompt,skills) - Statische Absender-Zugriffsgruppen können aus
allowFrom,groupAllowFromund dem gruppenspezifischenallowFromüberaccessGroup:<name>referenziert werden; siehe Zugriffsgruppen. - Laufzeithinweis: Wenn
channels.linevollständig fehlt, verwendet die Laufzeit für Gruppenprüfungen ersatzweisegroupPolicy="allowlist"(selbst wennchannels.defaults.groupPolicyfestgelegt ist).
Bei LINE-IDs wird zwischen Groß- und Kleinschreibung unterschieden. Gültige IDs sehen wie folgt aus:
- Benutzer:
U+ 32 Hexadezimalzeichen - Gruppe:
C+ 32 Hexadezimalzeichen - Raum:
R+ 32 Hexadezimalzeichen
Nachrichtenverhalten
- Text wird in Abschnitte von jeweils 5.000 Zeichen aufgeteilt.
- Markdown-Formatierungen werden entfernt; Codeblöcke und Tabellen werden nach Möglichkeit in Flex-Karten umgewandelt.
- Streaming-Antworten werden gepuffert; LINE erhält vollständige Abschnitte und zeigt eine Ladeanimation an, während der Agent arbeitet.
- Medien-Downloads werden durch
channels.line.mediaMaxMbbegrenzt (Standard: 10). - Eingehende Medien werden unter
~/.openclaw/media/inbound/gespeichert, bevor sie an den Agenten übergeben werden. Dies entspricht dem gemeinsamen Medienspeicher, den auch andere Kanal-Plugins verwenden.
Kanaldaten (Rich Messages)
Verwenden Sie channelData.line, um Schnellantworten, Standorte, Flex-Karten oder Vorlagennachrichten zu senden.
{ 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", }, }, },}Das LINE-Plugin enthält außerdem einen /card-Befehl für Flex-Nachrichtenvorlagen:
/card info "Welcome" "Thanks for joining!"ACP-Unterstützung
LINE unterstützt ACP-Konversationsbindungen (Agent Communication Protocol):
/acp spawn <agent> --bind herebindet den aktuellen LINE-Chat an eine ACP-Sitzung, ohne einen untergeordneten Thread zu erstellen.- Konfigurierte ACP-Bindungen und aktive, an Konversationen gebundene ACP-Sitzungen funktionieren unter LINE wie bei anderen Konversationskanälen.
Weitere Informationen finden Sie unter ACP-Agenten.
Ausgehende Medien
Das LINE-Plugin sendet Bilder, Videos und Audiodateien über das Nachrichtenwerkzeug des Agenten:
- Bilder: werden als LINE-Bildnachrichten gesendet; das Vorschaubild verwendet standardmäßig die Medien-URL.
- Videos: erfordern ein Vorschaubild; legen Sie
channelData.line.previewImageUrlauf eine Bild-URL fest. - Audio: wird als LINE-Audionachricht gesendet; die Dauer beträgt standardmäßig 60 Sekunden, sofern
channelData.line.durationMsnicht festgelegt ist.
Der Medientyp wird aus channelData.line.mediaKind übernommen, sofern dieser Wert festgelegt ist. Andernfalls wird er aus den anderen LINE-Optionen oder der Dateiendung der URL abgeleitet, wobei ein Bild als Ausweichwert dient.
URLs für ausgehende Medien müssen öffentliche HTTPS-URLs mit höchstens 2.000 Zeichen sein. OpenClaw validiert den Ziel-Hostnamen, bevor die URL an LINE übergeben wird, und lehnt local loopback-, Link-Local- sowie private Netzwerkziele ab.
Allgemeine Medienübertragungen ohne LINE-spezifische Optionen verwenden die Bildroute.
Fehlerbehebung
- Webhook-Verifizierung schlägt fehl: Stellen Sie sicher, dass die Webhook-URL HTTPS verwendet und
channelSecretmit der LINE Console übereinstimmt. - Keine eingehenden Ereignisse: Prüfen Sie, ob der Webhook-Pfad mit
channels.line.webhookPathübereinstimmt und das Gateway von LINE aus erreichbar ist. - Fehler beim Medien-Download: Erhöhen Sie
channels.line.mediaMaxMb, wenn Medien die Standardbegrenzung überschreiten.
Verwandte Themen
- Kanalübersicht — alle unterstützten Kanäle
- Kopplung — Authentifizierung von Direktnachrichten und Kopplungsablauf
- Gruppen — Verhalten von Gruppenchats und Erwähnungsanforderungen
- Kanal-Routing — Sitzungs-Routing für Nachrichten
- Sicherheit — Zugriffsmodell und Absicherung