Na tej stronie
Na tej stronie
Regional platforms
LINE
LINE łączy się z OpenClaw za pośrednictwem LINE Messaging API. Plugin działa jako odbiornik webhooków w Gateway i używa tokenu dostępu do kanału oraz sekretu kanału do uwierzytelniania.
Status: oficjalny Plugin, instalowany oddzielnie. 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
Przed skonfigurowaniem kanału zainstaluj LINE:
Lokalne repozytorium (w przypadku uruchamiania z repozytorium git):
Konfiguracja początkowa
- 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 Channel access token i Channel secret z ustawień kanału.
- Włącz Use webhook w ustawieniach Messaging API.
- Ustaw adres URL webhooka na punkt końcowy Gateway (wymagany HTTPS):
Gateway odpowiada na weryfikację webhooka LINE (GET) i natychmiast potwierdza podpisane
zdarzenia przychodzące (POST) po zweryfikowaniu podpisu i ładunku; przetwarzanie przez agenta
jest kontynuowane asynchronicznie.
Jeśli potrzebna jest niestandardowa ścieżka, ustaw channels.line.webhookPath lub
channels.line.accounts.<id>.webhookPath i odpowiednio zaktualizuj adres URL.
Uwagi dotyczące bezpieczeństwa:
- Weryfikacja podpisu LINE zależy od treści żądania (HMAC obliczany na podstawie nieprzetworzonej treści), dlatego OpenClaw przed uwierzytelnieniem stosuje ścisły limit rozmiaru treści (64 KB) i limit czasu odczytu.
- OpenClaw przetwarza zdarzenia webhooka na podstawie zweryfikowanych, nieprzetworzonych bajtów żądania. Wartości
req.bodyprzekształcone przez nadrzędne oprogramowanie pośredniczące są ignorowane w celu zapewnienia integralności podpisu.
Konfiguracja
Konfiguracja minimalna:
Konfiguracja publicznych wiadomości bezpośrednich:
Zmienne środowiskowe (tylko konto domyślne):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Pliki tokenu/sekretu:
tokenFile i secretFile muszą wskazywać zwykłe pliki. Dowiązania symboliczne są odrzucane.
Wartości konfiguracji wbudowane bezpośrednio mają pierwszeństwo przed plikami; zmienne środowiskowe stanowią ostatnią opcję rezerwową dla konta domyślnego.
Wiele kont:
Kontrola dostępu
Wiadomości bezpośrednie domyślnie wymagają parowania. Nieznani nadawcy otrzymują kod parowania, a ich wiadomości są ignorowane do czasu zatwierdzenia:
Listy dozwolonych nadawców i zasady:
channels.line.dmPolicy:pairing | allowlist | open | disabled(domyślniepairing)channels.line.allowFrom: dozwolone identyfikatory użytkowników LINE dla wiadomości bezpośrednich;dmPolicy: "open"wymaga["*"]channels.line.groupPolicy:allowlist | open | disabled(domyślnieallowlist)channels.line.groupAllowFrom: dozwolone identyfikatory użytkowników LINE dla grup; wpisyallowFromdotyczące wiadomości bezpośrednich nie dopuszczają nadawców grupowych- Nadpisania dla poszczególnych grup:
channels.line.groups.<groupId>.allowFrom(orazenabled,requireMention,systemPrompt,skills). W przypadkugroupPolicy: "allowlist"ustawgroupAllowFromluballowFromdla danej grupy; pusta lista dozwolonych nadawców grupy blokuje wiadomości grupowe nawet wtedy, gdy wiadomości bezpośrednie są otwarte. - Do statycznych grup dostępu nadawców można odwoływać się z poziomu
allowFrom,groupAllowFromorazallowFromdla poszczególnych grup za pomocąaccessGroup:<name>; zobacz Grupy dostępu. - Uwaga dotycząca środowiska uruchomieniowego: jeśli całkowicie brakuje
channels.line, środowisko uruchomieniowe używa zastępczogroupPolicy="allowlist"do sprawdzania grup (nawet jeśli ustawionochannels.defaults.groupPolicy).
W identyfikatorach LINE rozróżniana jest wielkość liter. Prawidłowe identyfikatory mają następującą postać:
- Użytkownik:
U+ 32 znaki szesnastkowe - Grupa:
C+ 32 znaki szesnastkowe - Pokój:
R+ 32 znaki szesnastkowe
Obsługa wiadomości
- Tekst jest dzielony na fragmenty po 5000 znaków.
- Formatowanie Markdown jest usuwane; bloki kodu i tabele są w miarę możliwości konwertowane na karty Flex.
- Odpowiedzi strumieniowe są buforowane; LINE otrzymuje pełne fragmenty wraz z animacją ładowania podczas pracy agenta.
- Rozmiar pobieranych multimediów jest ograniczony przez
channels.line.mediaMaxMb(domyślnie 10). - Przychodzące multimedia są zapisywane w
~/.openclaw/media/inbound/przed przekazaniem ich agentowi, zgodnie ze współdzielonym magazynem multimediów używanym przez inne 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.
Plugin LINE zawiera również polecenie /card do używania ustawień wstępnych wiadomości Flex:
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 podrzędnego.- Skonfigurowane powiązania ACP i aktywne sesje ACP powiązane z konwersacją działają w LINE tak samo jak w innych kanałach konwersacji.
Szczegółowe informacje zawiera strona Agenci ACP.
Multimedia wychodzące
Plugin LINE wysyła obrazy, filmy i dźwięk za pośrednictwem narzędzia wiadomości agenta:
- Obrazy: wysyłane jako wiadomości graficzne LINE; obraz podglądu domyślnie używa adresu URL multimediów.
- Filmy: wymagają obrazu podglądu; ustaw
channelData.line.previewImageUrlna adres URL obrazu. - Dźwięk: wysyłany jako wiadomości dźwiękowe LINE; czas trwania domyślnie wynosi 60 sekund, chyba że ustawiono
channelData.line.durationMs.
Rodzaj multimediów jest pobierany z channelData.line.mediaKind, jeśli ta wartość jest ustawiona; w przeciwnym razie jest ustalany
na podstawie innych opcji LINE lub rozszerzenia pliku w adresie URL, z obrazem jako wartością domyślną.
Adresy URL wychodzących multimediów muszą być publicznymi adresami HTTPS o długości nieprzekraczającej 2000 znaków. OpenClaw weryfikuje docelową nazwę hosta przed przekazaniem adresu URL do LINE i odrzuca adresy pętli zwrotnej, łącza lokalnego oraz sieci prywatnych.
Ogólne wysyłanie multimediów bez opcji specyficznych dla LINE korzysta ze ścieżki obrazów.
Rozwiązywanie problemów
- Weryfikacja webhooka nie powiodła się: upewnij się, że adres URL webhooka używa HTTPS, a
channelSecretodpowiada wartości w LINE Console. - Brak zdarzeń przychodzących: potwierdź, że ścieżka webhooka odpowiada
channels.line.webhookPathi że Gateway jest dostępny z LINE. - Błędy pobierania multimediów: zwiększ
channels.line.mediaMaxMb, jeśli multimedia przekraczają domyślny limit.
Powiązane materiały
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie wiadomości bezpośrednich i proces parowania
- Grupy — obsługa czatów grupowych i wymóg wzmianki
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i wzmacnianie zabezpieczeń