LINE (Plugin)
LINE verbindet sich mit OpenClaw über die LINE Messaging API. Das Plugin läuft als Webhook-Empfänger auf dem Gateway und nutzt Ihren Channel Access Token und Channel Secret zur Authentifizierung. Status: unterstützt über Plugin. Direktnachrichten, Gruppenchats, Medien, Standorte, Flex-Nachrichten, Vorlagen-Nachrichten und Quick Replies werden unterstützt. Reaktionen und Threads werden nicht unterstützt.
Plugin erforderlich
LINE-Plugin installieren:
openclaw plugins install @openclaw/lineLokaler Checkout (bei Ausführung aus einem Git-Repo):
openclaw plugins install ./extensions/lineEinrichtung
- 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 den Channel access token und das Channel secret aus den Kanaleinstellungen.
- Aktivieren Sie Use webhook in den Messaging API-Einstellungen.
- Setzen Sie die Webhook-URL auf Ihren Gateway-Endpunkt (HTTPS erforderlich):
https://gateway-host/line/webhookDas Gateway antwortet auf LINEs Webhook-Verifizierung (GET) und eingehende Events (POST).
Bei benutzerdefiniertem Pfad setzen Sie channels.line.webhookPath oder
channels.line.accounts.<id>.webhookPath und passen die URL entsprechend an.
Konfiguration
Minimale Konfiguration:
{
channels: {
line: {
enabled: true,
channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
channelSecret: "LINE_CHANNEL_SECRET",
dmPolicy: "pairing"
}
}
}Umgebungsvariablen (nur Standardkonto):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Token-/Secret-Dateien:
{
channels: {
line: {
tokenFile: "/path/to/line-token.txt",
secretFile: "/path/to/line-secret.txt"
}
}
}Mehrere Konten:
{
channels: {
line: {
accounts: {
marketing: {
channelAccessToken: "...",
channelSecret: "...",
webhookPath: "/line/marketing"
}
}
}
}
}Zugriffskontrolle
Direktnachrichten standardmäßig Pairing. Unbekannte Absender erhalten einen Kopplungscode; ihre Nachrichten werden ignoriert, bis sie freigegeben sind.
openclaw pairing list line
openclaw pairing approve line <CODE>Zulassen-Listen und Richtlinien:
channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: zugelassene LINE-Benutzer-IDs für DMschannels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: zugelassene LINE-Benutzer-IDs für Gruppen- Pro-Gruppe-Overrides:
channels.line.groups.<groupId>.allowFrom
LINE-IDs sind groß-/kleinschreibungsabhängig. Gültige IDs sehen so aus:
- User:
U+ 32 Hex-Zeichen - Group:
C+ 32 Hex-Zeichen - Room:
R+ 32 Hex-Zeichen
Nachrichtenverhalten
- Text wird bei 5000 Zeichen in Chunks aufgeteilt.
- Markdown-Formatierung wird entfernt; Code-Blöcke und Tabellen werden nach Möglichkeit in Flex-Karten umgewandelt.
- Streaming-Antworten werden gepuffert; LINE erhält vollständige Chunks mit Ladeanimation, während der Agent arbeitet.
- Mediendownloads sind durch
channels.line.mediaMaxMbbegrenzt (Standard 10).
Channel-Daten (Rich Messages)
Nutzen Sie channelData.line, um Quick Replies, Standorte, Flex-Karten oder Vorlagen-Nachrichten 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 bringt außerdem den Befehl /card für Flex-Nachrichten-Voreinstellungen mit:
/card info "Welcome" "Thanks for joining!"Fehlerbehebung
- Webhook-Verifizierung schlägt fehl: Stellen Sie sicher, dass die Webhook-URL HTTPS ist und das
channelSecretmit der LINE-Console übereinstimmt. - Keine eingehenden Events: Bestätigen Sie, dass der Webhook-Pfad mit
channels.line.webhookPathübereinstimmt und das Gateway von LINE aus erreichbar ist. - Medien-Download-Fehler: Erhöhen Sie
channels.line.mediaMaxMb, wenn Medien das Standardlimit überschreiten.