Skip to main content

LINE (plugin)

LINE은 LINE Messaging API를 통해 OpenClaw에 연결됩니다. 이 plugin은 gateway에서 webhook receiver로 실행되며, authentication에는 channel access token과 channel secret을 사용합니다. 상태: plugin을 통해 지원됩니다. direct messages, group chats, media, locations, Flex messages, template messages, quick replies를 지원합니다. reactions와 threads는 지원하지 않습니다.

Plugin 필요

LINE plugin을 설치하세요.
로컬 checkout으로 실행 중이라면:

설정

  1. LINE Developers 계정을 만들고 Console을 엽니다: https://developers.line.biz/console/
  2. Provider를 만들거나 선택한 뒤 Messaging API channel을 추가합니다.
  3. channel settings에서 Channel access tokenChannel secret을 복사합니다.
  4. Messaging API settings에서 Use webhook을 활성화합니다.
  5. webhook URL을 gateway endpoint로 설정합니다(HTTPS 필수).
gateway는 LINE의 webhook verification(GET)과 inbound events(POST)에 응답합니다. custom path가 필요하면 channels.line.webhookPath 또는 channels.line.accounts.<id>.webhookPath를 설정하고 URL도 맞춰 변경하세요. 보안 참고:
  • LINE signature verification은 raw body에 대한 body-dependent HMAC이므로, OpenClaw는 검증 전에 엄격한 pre-auth body limit와 timeout을 적용합니다.

구성

최소 구성:
환경 변수(기본 account만):
  • LINE_CHANNEL_ACCESS_TOKEN
  • LINE_CHANNEL_SECRET
token/secret file:
tokenFilesecretFile은 regular file이어야 합니다. symlink는 거부됩니다. 여러 account:

접근 제어

DM은 기본적으로 pairing을 사용합니다. 알 수 없는 sender는 pairing code를 받고, 승인 전까지 메시지는 무시됩니다.
Allowlist와 policy:
  • channels.line.dmPolicy: pairing | allowlist | open | disabled
  • channels.line.allowFrom: DM용 allowlisted LINE user ID
  • channels.line.groupPolicy: allowlist | open | disabled
  • channels.line.groupAllowFrom: group용 allowlisted LINE user ID
  • 그룹별 override: channels.line.groups.<groupId>.allowFrom
  • runtime 참고: channels.line 자체가 완전히 없으면, group check는 channels.defaults.groupPolicy가 있더라도 groupPolicy="allowlist"로 fallback합니다.
LINE ID는 대소문자를 구분합니다. 유효한 ID 예:
  • User: U + 32 hex chars
  • Group: C + 32 hex chars
  • Room: R + 32 hex chars

메시지 동작

  • 텍스트는 5000자 단위로 chunking됩니다.
  • Markdown formatting은 제거됩니다. code block과 table은 가능하면 Flex card로 변환됩니다.
  • streaming response는 버퍼링되며, agent가 작업하는 동안 LINE은 loading animation과 함께 완성된 chunk를 받습니다.
  • media download는 channels.line.mediaMaxMb(기본 10)로 제한됩니다.

채널 데이터(rich messages)

channelData.line을 사용해 quick replies, locations, Flex cards, template messages를 보낼 수 있습니다.
LINE plugin에는 Flex message preset용 /card 명령도 포함되어 있습니다.

문제 해결

  • Webhook verification fails: webhook URL이 HTTPS인지, channelSecret이 LINE console과 일치하는지 확인하세요.
  • No inbound events: webhook path가 channels.line.webhookPath와 일치하는지, 그리고 gateway가 LINE에서 도달 가능한지 확인하세요.
  • Media download errors: media가 기본 제한을 넘는다면 channels.line.mediaMaxMb를 높이세요.