Zum Inhalt springen

LINE Integration für OpenClaw einrichten

Kennst du das? Du möchtest deinen Bot oder Agenten auf LINE bringen, aber die Integration der Messaging API fühlt sich oft nach unnötiger Fleißarbeit an. Webhooks validieren, Signaturen prüfen und die verschiedenen Nachrichtentypen korrekt mappen – das kann den Fokus vom eigentlichen Feature ablenken.

Mit dem LINE-Plugin für OpenClaw kannst du diese Hürden überspringen. Es übernimmt die schwere Arbeit bei der Authentifizierung und sorgt dafür, dass deine Nachrichten genau dort ankommen, wo sie sollen. Hier erfährst du, wie du LINE schnell und stabil anbindest.

LINE verbindet sich über die LINE Messaging API mit OpenClaw. Das Plugin läuft als Webhook-Receiver auf dem Gateway und nutzt deinen Channel Access Token sowie das Channel Secret für die Authentifizierung.

Status: Über Plugin unterstützt. Direktnachrichten, Gruppen-Chats, Medien, Standorte, Flex Messages, Template Messages und Quick Replies werden unterstützt. Reactions und Threads werden nicht unterstützt.

Installiere das LINE-Plugin:

Terminal-Fenster
openclaw plugins install @openclaw/line

Lokaler Checkout (wenn du aus einem Git-Repo arbeitest):

Terminal-Fenster
openclaw plugins install ./path/to/local/line-plugin
  1. Erstelle einen LINE Developers Account und öffne die Console: https://developers.line.biz/console/
  2. Erstelle (oder wähle) einen Provider und füge einen Messaging API Channel hinzu.
  3. Kopiere den Channel access token und das Channel secret aus den Channel-Einstellungen.
  4. Aktiviere Use webhook in den Messaging API Einstellungen.
  5. Setze die Webhook-URL auf deinen Gateway-Endpunkt (HTTPS erforderlich):
https://gateway-host/line/webhook

Der Gateway reagiert auf die Webhook-Verifizierung von LINE (GET) und eingehende Events (POST). Wenn du einen benutzerdefinierten Pfad benötigst, setze channels.line.webhookPath oder channels.line.accounts.<id>.webhookPath und aktualisiere die URL entsprechend.

Sicherheitshinweis:

  • Die LINE-Signaturverifizierung ist vom Body abhängig (HMAC über den Raw Body). OpenClaw wendet daher strikte Pre-Auth Body-Limits und Timeouts vor der Verifizierung an.
  • OpenClaw verarbeitet Webhook-Events aus den verifizierten Raw Request Bytes. Upstream-Middleware-transformierte req.body Werte werden für die Integrität der Signatur ignoriert.

Minimale Konfiguration:

{
channels: {
line: {
enabled: true,
channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
channelSecret: "LINE_CHANNEL_SECRET",
dmPolicy: "pairing",
},
},
}

Umgebungsvariablen (nur für den Default-Account):

  • LINE_CHANNEL_ACCESS_TOKEN
  • LINE_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. Symlinks werden abgelehnt.

Mehrere Accounts:

{
channels: {
line: {
accounts: {
marketing: {
channelAccessToken: "...",
channelSecret: "...",
webhookPath: "/line/marketing",
},
},
},
},
}

Direktnachrichten nutzen standardmäßig Pairing. Unbekannte Absender erhalten einen Pairing-Code und ihre Nachrichten werden ignoriert, bis sie genehmigt wurden.

Terminal-Fenster
openclaw pairing list line
openclaw pairing approve line <CODE>

Allowlists und Policies:

  • channels.line.dmPolicy: pairing | allowlist | open | disabled
  • channels.line.allowFrom: LINE User-IDs auf der Allowlist für DMs
  • channels.line.groupPolicy: allowlist | open | disabled
  • channels.line.groupAllowFrom: LINE User-IDs auf der Allowlist für Gruppen
  • Overrides pro Gruppe: channels.line.groups.<groupId>.allowFrom
  • Runtime-Hinweis: Wenn channels.line komplett fehlt, nutzt die Runtime standardmäßig groupPolicy="allowlist" für Gruppen-Checks (selbst wenn channels.defaults.groupPolicy gesetzt ist).

LINE-IDs sind case-sensitive. Gültige IDs sehen so aus:

  • User: U + 32 Hex-Zeichen
  • Gruppe: C + 32 Hex-Zeichen
  • Room: R + 32 Hex-Zeichen
  • Text wird bei 5000 Zeichen in Chunks aufgeteilt.
  • Markdown-Formatierung wird entfernt; Code-Blöcke und Tabellen werden nach Möglichkeit in Flex Cards umgewandelt.
  • Streaming-Antworten werden gepuffert; LINE empfängt vollständige Chunks mit einer Lade-Animation, während der Agent arbeitet.
  • Medien-Downloads sind durch channels.line.mediaMaxMb begrenzt (Standard: 10).

Nutze channelData.line, um Quick Replies, Standorte, Flex Cards oder Template Messages 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 bietet zudem einen /card Befehl für Flex Message Presets:

/card info "Welcome" "Thanks for joining!"

LINE unterstützt ACP (Agent Communication Protocol) Conversation Bindings:

  • /acp spawn <agent> --bind here bindet den aktuellen LINE-Chat an eine ACP-Session, ohne einen Child-Thread zu erstellen.
  • Konfigurierte ACP-Bindings und aktive konversationsgebundene ACP-Sessions funktionieren auf LINE wie bei anderen Conversation Channels.

Details findest du unter ACP agents.

Das LINE-Plugin unterstützt das Senden von Bildern, Videos und Audiodateien über das Agent Message Tool. Medien werden über den LINE-spezifischen Pfad mit entsprechender Vorschau- und Tracking-Verarbeitung gesendet:

  • Bilder: Werden als LINE-Bildnachrichten mit automatischer Vorschau-Generierung gesendet.
  • Videos: Werden mit expliziter Vorschau und Content-Type-Handling gesendet.
  • Audio: Werden als LINE-Audionachrichten gesendet.

Allgemeine Medien-Sends fallen auf die bestehende Image-only Route zurück, wenn kein LINE-spezifischer Pfad verfügbar ist.

  • Webhook-Verifizierung schlägt fehl: Stelle sicher, dass die Webhook-URL HTTPS nutzt und das channelSecret mit der LINE Console übereinstimmt.
  • Keine eingehenden Events: Bestätige, dass der Webhook-Pfad mit channels.line.webhookPath übereinstimmt und der Gateway von LINE aus erreichbar ist.
  • Fehler beim Medien-Download: Erhöhe channels.line.mediaMaxMb, wenn die Medien das Standardlimit überschreiten.

Du hast LINE erfolgreich angebunden? Dann schau dir an, wie du den Zugriff über Pairing absicherst oder wie du Gruppen effektiv verwaltest.

AI Setup Assistant

OpenClaw

OpenClaw Expert

Noch festgefahren?

Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.