LINE (plugin)
LINE kết nối với OpenClaw thông qua LINE Messaging API. Plugin này hoạt động như một webhook receiver trên Gateway và sử dụng channel access token + channel secret để xác thực.
Trạng thái: được hỗ trợ qua plugin. Tin nhắn trực tiếp, chat nhóm, media, vị trí, Flex messages, template messages và quick replies đều được hỗ trợ. Reactions và threads chưa được hỗ trợ.
Cần cài plugin
Cài đặt LINE plugin:
openclaw plugins install @openclaw/line
Nếu đang chạy từ git repo local:
openclaw plugins install ./extensions/line
Thiết lập
- Tạo tài khoản LINE Developers và mở Console: https://developers.line.biz/console/
- Tạo (hoặc chọn) một Provider và thêm channel Messaging API.
- Copy Channel access token và Channel secret từ cài đặt channel.
- Bật Use webhook trong cài đặt Messaging API.
- Đặt webhook URL trỏ đến Gateway endpoint của các bạn (bắt buộc dùng HTTPS):
https://gateway-host/line/webhook
Gateway sẽ phản hồi webhook verification của LINE (GET) và các inbound events (POST). Nếu các bạn cần custom path, hãy đặt channels.line.webhookPath hoặc channels.line.accounts.<id>.webhookPath và cập nhật URL cho phù hợp.
Cấu hình
Cấu hình tối thiểu:
{
channels: {
line: {
enabled: true,
channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
channelSecret: "LINE_CHANNEL_SECRET",
dmPolicy: "pairing",
},
},
}
Biến môi trường (chỉ cho tài khoản mặc định):
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
Dùng file token/secret:
{
channels: {
line: {
tokenFile: "/path/to/line-token.txt",
secretFile: "/path/to/line-secret.txt",
},
},
}
Nhiều tài khoản:
{
channels: {
line: {
accounts: {
marketing: {
channelAccessToken: "...",
channelSecret: "...",
webhookPath: "/line/marketing",
},
},
},
},
}
Kiểm soát truy cập
Tin nhắn trực tiếp mặc định dùng chế độ pairing. Người gửi lạ sẽ nhận được mã pairing và tin nhắn của họ sẽ bị bỏ qua cho đến khi được phê duyệt.
openclaw pairing list line
openclaw pairing approve line <CODE>
Allowlists và policies:
channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: danh sách LINE user IDs được phép gửi DMchannels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: danh sách LINE user IDs được phép trong nhóm- Override theo từng nhóm:
channels.line.groups.<groupId>.allowFrom
LINE IDs phân biệt chữ hoa/thường. Các ID hợp lệ có dạng:
- User:
U+ 32 ký tự hex - Group:
C+ 32 ký tự hex - Room:
R+ 32 ký tự hex
Hành vi tin nhắn
- Text được chia nhỏ ở mức 5000 ký tự.
- Markdown formatting sẽ bị loại bỏ; code blocks và tables sẽ được chuyển thành Flex cards khi có thể.
- Streaming responses được buffer; LINE nhận các chunks đầy đủ kèm animation loading trong khi agent đang xử lý.
- Media downloads bị giới hạn bởi
channels.line.mediaMaxMb(mặc định 10).
Channel data (rich messages)
Dùng channelData.line để gửi quick replies, vị trí, Flex cards, hoặc template messages.
{
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",
},
},
},
}
LINE plugin cũng đi kèm lệnh /card cho các Flex message presets:
/card info "Welcome" "Thanks for joining!"
Troubleshooting
- Webhook verification fails: đảm bảo webhook URL dùng HTTPS và
channelSecretkhớp với LINE console. - No inbound events: kiểm tra webhook path có khớp với
channels.line.webhookPathvà Gateway có thể truy cập được từ LINE. - Media download errors: tăng
channels.line.mediaMaxMbnếu media vượt quá giới hạn mặc định.