Regional platforms
WIERSZ
LINE łączy się z OpenClaw przez LINE Messaging API. Plugin działa jako odbiornik webhooków na Gateway i używa tokenu dostępu kanału oraz sekretu kanału do uwierzytelniania.
Status: Plugin do pobrania. Obsługiwane są wiadomości bezpośrednie, czaty grupowe, multimedia, lokalizacje, wiadomości Flex, wiadomości szablonowe i szybkie odpowiedzi. Reakcje i wątki nie są obsługiwane.
Instalacja
Zainstaluj LINE przed skonfigurowaniem kanału:
openclaw plugins install @openclaw/lineLokalny checkout (podczas uruchamiania z repozytorium git):
openclaw plugins install ./path/to/local/line-pluginKonfiguracja
- Utwórz konto LINE Developers i otwórz Console: https://developers.line.biz/console/
- Utwórz (lub wybierz) Provider i dodaj kanał Messaging API.
- Skopiuj token dostępu kanału i sekret kanału z ustawień kanału.
- Włącz Użyj webhooka w ustawieniach Messaging API.
- Ustaw URL webhooka na punkt końcowy Gateway (wymagany HTTPS):
https://gateway-host/line/webhookGateway odpowiada na weryfikację webhooka LINE (GET) i zdarzenia przychodzące (POST).
Jeśli potrzebujesz niestandardowej ścieżki, ustaw channels.line.webhookPath lub
channels.line.accounts.<id>.webhookPath i odpowiednio zaktualizuj URL.
Uwaga dotycząca bezpieczeństwa:
- Weryfikacja podpisu LINE zależy od treści żądania (HMAC na surowej treści), więc OpenClaw stosuje ścisłe limity treści przed uwierzytelnieniem oraz limit czasu przed weryfikacją.
- OpenClaw przetwarza zdarzenia webhooka ze zweryfikowanych surowych bajtów żądania. Wartości
req.bodyprzekształcone przez middleware wyższego poziomu są ignorowane dla bezpieczeństwa integralności podpisu.
Konfigurowanie
Minimalna konfiguracja:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "pairing", }, },}Publiczna konfiguracja wiadomości DM:
{ channels: { line: { enabled: true, channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN", channelSecret: "LINE_CHANNEL_SECRET", dmPolicy: "open", allowFrom: ["*"], }, },}Zmienne środowiskowe (tylko konto domyślne):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Pliki tokenu/sekretu:
{ channels: { line: { tokenFile: "/path/to/line-token.txt", secretFile: "/path/to/line-secret.txt", }, },}tokenFile i secretFile muszą wskazywać zwykłe pliki. Dowiązania symboliczne są odrzucane.
Wiele kont:
{ channels: { line: { accounts: { marketing: { channelAccessToken: "...", channelSecret: "...", webhookPath: "/line/marketing", }, }, }, },}Kontrola dostępu
Wiadomości bezpośrednie domyślnie używają parowania. Nieznani nadawcy otrzymują kod parowania, a ich wiadomości są ignorowane do czasu zatwierdzenia.
openclaw pairing list lineopenclaw pairing approve line <CODE>Listy dozwolonych i zasady:
channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: dozwolone identyfikatory użytkowników LINE dla wiadomości DM;dmPolicy: "open"wymaga["*"]channels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: dozwolone identyfikatory użytkowników LINE dla grup- Nadpisania dla grup:
channels.line.groups.<groupId>.allowFrom - Statyczne grupy dostępu nadawców można wskazywać z
allowFrom,groupAllowFromi grupowegoallowFromza pomocąaccessGroup:<name>. - Uwaga dotycząca działania: jeśli
channels.linecałkowicie brakuje, środowisko uruchomieniowe cofa się dogroupPolicy="allowlist"dla sprawdzeń grup (nawet jeśli ustawionochannels.defaults.groupPolicy).
Identyfikatory LINE uwzględniają wielkość liter. Poprawne identyfikatory wyglądają tak:
- Użytkownik:
U+ 32 znaki szesnastkowe - Grupa:
C+ 32 znaki szesnastkowe - Pokój:
R+ 32 znaki szesnastkowe
Zachowanie wiadomości
- Tekst jest dzielony na fragmenty po 5000 znaków.
- Formatowanie Markdown jest usuwane; bloki kodu i tabele są konwertowane na karty Flex, gdy to możliwe.
- Odpowiedzi strumieniowe są buforowane; LINE otrzymuje pełne fragmenty z animacją ładowania, gdy agent pracuje.
- Pobieranie multimediów jest ograniczone przez
channels.line.mediaMaxMb(domyślnie 10). - Multimedia przychodzące są zapisywane w
~/.openclaw/media/inbound/, zanim zostaną przekazane do agenta, zgodnie ze wspólnym magazynem multimediów używanym przez inne dołączone pluginy kanałów.
Dane kanału (wiadomości rozszerzone)
Użyj channelData.line, aby wysyłać szybkie odpowiedzi, lokalizacje, karty Flex lub wiadomości
szablonowe.
{ 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", }, }, },}Plugin LINE zawiera również polecenie /card dla presetów wiadomości Flex:
/card info "Welcome" "Thanks for joining!"Obsługa ACP
LINE obsługuje powiązania konwersacji ACP (Agent Communication Protocol):
/acp spawn <agent> --bind herewiąże bieżący czat LINE z sesją ACP bez tworzenia wątku potomnego.- Skonfigurowane powiązania ACP i aktywne sesje ACP powiązane z konwersacją działają w LINE tak jak w innych kanałach konwersacji.
Szczegóły znajdziesz w agentach ACP.
Multimedia wychodzące
Plugin LINE obsługuje wysyłanie obrazów, filmów i plików audio przez narzędzie wiadomości agenta. Multimedia są wysyłane przez ścieżkę dostarczania właściwą dla LINE z odpowiednią obsługą podglądu i śledzenia:
- Obrazy: wysyłane jako wiadomości obrazów LINE z automatycznym generowaniem podglądu.
- Filmy: wysyłane z jawną obsługą podglądu i typu zawartości.
- Audio: wysyłane jako wiadomości audio LINE.
Adresy URL multimediów wychodzących muszą być publicznymi adresami HTTPS. OpenClaw weryfikuje docelową nazwę hosta przed przekazaniem URL do LINE i odrzuca cele local loopback, link-local oraz sieci prywatnych.
Ogólne wysyłanie multimediów cofa się do istniejącej ścieżki tylko dla obrazów, gdy ścieżka właściwa dla LINE nie jest dostępna.
Rozwiązywanie problemów
- Weryfikacja webhooka kończy się niepowodzeniem: upewnij się, że URL webhooka używa HTTPS, a
channelSecretodpowiada wartości w konsoli LINE. - Brak zdarzeń przychodzących: potwierdź, że ścieżka webhooka odpowiada
channels.line.webhookPathi że Gateway jest osiągalny z LINE. - Błędy pobierania multimediów: zwiększ
channels.line.mediaMaxMb, jeśli multimedia przekraczają domyślny limit.
Powiązane
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie wiadomości DM i przepływ parowania
- Grupy — zachowanie czatu grupowego i bramkowanie wzmianek
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i utwardzanie