OpenClaw LINE 채널
공식 Messaging API를 사용하여 OpenClaw를 LINE에 연결합니다. 이 플러그인 기반 통합을 통해 AI 어시스턴트가 LINE에서 메시지를 주고받을 수 있습니다. LINE은 일본, 대만, 태국 및 동남아시아에서 가장 인기 있는 메시징 플랫폼 중 하나입니다. OpenClaw는 Webhook을 통해 이벤트를 수신하고 Messaging API를 통해 응답하며, Flex Message, 템플릿 메시지, 빠른 답장, 미디어 공유 등 풍부한 메시지 유형을 지원합니다.
LINE 지원 기능
텍스트 메시지
지원
미디어 및 파일
지원
리액션
미지원
스레드
미지원
음성 메시지
미지원
그룹 채팅
지원
LINE 사전 요구사항
- LINE Developers 계정 (developers.line.biz에서 무료 생성)
- LINE Developers Console에서 Provider 및 Messaging API 채널 생성
- Messaging API 채널 설정에서 채널 액세스 토큰 및 채널 시크릿 확인
- 공개 HTTPS URL로 접근 가능한 OpenClaw Gateway 실행 (Webhook에 필요)
- LINE 플러그인 설치: openclaw plugins install @openclaw/line
LINE 빠른 설정
LINE Messaging API 채널 생성
LINE Developers Console에 로그인하여 Provider를 생성(또는 기존 선택)한 다음 새 Messaging API 채널을 만듭니다. Channel ID, Channel secret을 확인하고 채널 설정 페이지에서 Channel access token을 발급합니다.
LINE 플러그인 설치 및 구성 추가
'openclaw plugins install @openclaw/line'을 실행하여 LINE 플러그인을 설치합니다. 그런 다음 ~/.openclaw/openclaw.json에 channelAccessToken과 channelSecret을 포함한 LINE 채널 구성을 추가합니다. 환경 변수 LINE_CHANNEL_ACCESS_TOKEN 및 LINE_CHANNEL_SECRET을 사용할 수도 있습니다.
Webhook URL 구성
LINE Developers Console에서 채널의 Messaging API 탭으로 이동합니다. Webhook URL을 'https://<your-gateway-host>/line/webhook'으로 설정하고 'Use webhook'을 활성화합니다. Verify를 클릭하여 엔드포인트에 접근 가능한지 확인합니다. 중복 응답을 방지하기 위해 LINE Official Account Manager에서 자동 응답 및 인사 메시지를 비활성화합니다.
테스트 메시지 전송
Console에서 확인할 수 있는 QR 코드를 스캔하여 LINE 봇을 친구로 추가합니다. 봇에게 메시지를 보냅니다. 기본 pairing 정책을 사용하는 경우 터미널에서 'openclaw pairing approve line <code>'로 발신자를 승인합니다.
LINE 구성 예시
{
"channels": {
"line": {
"enabled": true,
"channelAccessToken": "YOUR_CHANNEL_ACCESS_TOKEN",
"channelSecret": "YOUR_CHANNEL_SECRET",
"dmPolicy": "pairing"
}
}
}LINE 상세 문서
아키텍처 개요
LINE Developers Console 설정
{
"channels": {
"line": {
"channelAccessToken": "YOUR_TOKEN",
"channelSecret": "YOUR_SECRET"
}
}
}채널 액세스 토큰
DM 정책
{
"channels": {
"line": {
"dmPolicy": "allowlist",
"allowFrom": ["U1234567890abcdef1234567890abcdef"]
}
}
}그룹 채팅 관리
{
"channels": {
"line": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}리치 메시지: Flex 및 템플릿
미디어 및 첨부파일
{
"channels": {
"line": {
"mediaMaxMb": 10
}
}
}Webhook 보안
로딩 표시기 및 전달
{
"channels": {
"line": {
"textChunkLimit": 5000,
"chunkMode": "newline"
}
}
}다중 계정 설정
{
"channels": {
"line": {
"accounts": {
"main": {
"channelAccessToken": "TOKEN_1",
"channelSecret": "SECRET_1",
"webhookPath": "/line/main/webhook"
},
"support": {
"channelAccessToken": "TOKEN_2",
"channelSecret": "SECRET_2",
"webhookPath": "/line/support/webhook"
}
}
}
}
}LINE 구성 참조
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | LINE 채널 활성화 또는 비활성화 |
| channelAccessToken | string | "" | LINE Messaging API 채널 액세스 토큰. LINE_CHANNEL_ACCESS_TOKEN 환경 변수도 사용 가능 |
| channelSecret | string | "" | Webhook 서명 검증용 LINE 채널 시크릿. LINE_CHANNEL_SECRET 환경 변수도 사용 가능 |
| tokenFile | string | "" | 채널 액세스 토큰이 포함된 파일 경로 (인라인 구성의 대안) |
| secretFile | string | "" | 채널 시크릿이 포함된 파일 경로 (인라인 구성의 대안) |
| dmPolicy | string | "pairing" | 봇에 DM을 보낼 수 있는 사용자 제어. 옵션: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | dmPolicy가 allowlist일 때 봇에 메시지를 보낼 수 있는 LINE 사용자 ID (U + 32자리 16진수) |
| dmHistoryLimit | number | 50 | 대화별 AI 컨텍스트에 포함할 최근 DM 메시지 수 |
| groupPolicy | string | "disabled" | 그룹 채팅 정책. 옵션: disabled, allowlist, open |
| groupAllowFrom | string[] | [] | 그룹에서 봇을 트리거할 수 있는 LINE 사용자 ID (groupPolicy가 allowlist일 때) |
| historyLimit | number | 50 | AI 컨텍스트에 포함할 최대 그룹 메시지 수. 0으로 설정하면 비활성화 |
| textChunkLimit | number | 5000 | 청킹 전 발신 메시지당 최대 문자 수 |
| chunkMode | string | "length" | 텍스트 청킹 모드. 옵션: length (강제 분할), newline (단락 인식) |
| mediaMaxMb | number | 10 | 최대 수신 미디어 파일 크기(MB) |
| webhookPath | string | "/line/webhook" | 이 계정의 사용자 정의 Webhook 경로 (다중 계정 설정에 유용) |
| accounts.<id>.channelAccessToken | string | "" | 다중 계정 설정을 위한 계정별 채널 액세스 토큰 |
| accounts.<id>.channelSecret | string | "" | 다중 계정 설정을 위한 계정별 채널 시크릿 |
| accounts.<id>.webhookPath | string | "/line/<id>/webhook" | 다중 계정 설정을 위한 계정별 Webhook 경로 |
| configWrites | boolean | true | 런타임에 /config 명령으로 채널 설정 수정 허용 |
LINE 채널 활성화 또는 비활성화
LINE Messaging API 채널 액세스 토큰. LINE_CHANNEL_ACCESS_TOKEN 환경 변수도 사용 가능
Webhook 서명 검증용 LINE 채널 시크릿. LINE_CHANNEL_SECRET 환경 변수도 사용 가능
채널 액세스 토큰이 포함된 파일 경로 (인라인 구성의 대안)
채널 시크릿이 포함된 파일 경로 (인라인 구성의 대안)
봇에 DM을 보낼 수 있는 사용자 제어. 옵션: pairing, allowlist, open, disabled
dmPolicy가 allowlist일 때 봇에 메시지를 보낼 수 있는 LINE 사용자 ID (U + 32자리 16진수)
대화별 AI 컨텍스트에 포함할 최근 DM 메시지 수
그룹 채팅 정책. 옵션: disabled, allowlist, open
그룹에서 봇을 트리거할 수 있는 LINE 사용자 ID (groupPolicy가 allowlist일 때)
AI 컨텍스트에 포함할 최대 그룹 메시지 수. 0으로 설정하면 비활성화
청킹 전 발신 메시지당 최대 문자 수
텍스트 청킹 모드. 옵션: length (강제 분할), newline (단락 인식)
최대 수신 미디어 파일 크기(MB)
이 계정의 사용자 정의 Webhook 경로 (다중 계정 설정에 유용)
다중 계정 설정을 위한 계정별 채널 액세스 토큰
다중 계정 설정을 위한 계정별 채널 시크릿
다중 계정 설정을 위한 계정별 Webhook 경로
런타임에 /config 명령으로 채널 설정 수정 허용
LINE 자주 묻는 질문
LINE 문제 해결
Gateway가 인터넷에서 접근 불가능하거나, URL이 올바르지 않거나, SSL 인증서 문제입니다.
Console에서 Webhook이 활성화되지 않았거나, 자동 응답이 간섭하거나, pairing 정책에서 발신자가 승인되지 않았습니다.
채널 액세스 토큰이 유효하지 않거나, 만료되었거나, 취소되었습니다.
LINE 응답 토큰은 Webhook 이벤트가 전송된 후 1분 후에 만료됩니다. AI 처리에 더 오래 걸리면 토큰이 무효화됩니다.
구성의 channelSecret이 LINE Developers Console의 채널 시크릿과 일치하지 않거나, 리버스 프록시가 요청 본문을 수정하고 있습니다.