Regional platforms
Zalo cá nhân
Trạng thái: thử nghiệm. Tích hợp này tự động hóa một tài khoản Zalo cá nhân thông qua zca-js native bên trong OpenClaw.
Plugin đi kèm
Zalo Personal được phân phối dưới dạng Plugin đi kèm trong các bản phát hành OpenClaw hiện tại, vì vậy các bản dựng đóng gói thông thường không cần cài đặt riêng.
Nếu bạn đang dùng bản dựng cũ hơn hoặc bản cài đặt tùy chỉnh không bao gồm Zalo Personal, hãy cài đặt trực tiếp gói npm:
- Cài đặt qua CLI:
openclaw plugins install @openclaw/zalouser - Phiên bản ghim:
openclaw plugins install @openclaw/[email protected] - Hoặc từ checkout mã nguồn:
openclaw plugins install ./path/to/local/zalouser-plugin - Chi tiết: Plugins
Không cần binary CLI zca/openzca bên ngoài.
Thiết lập nhanh (người mới bắt đầu)
- Đảm bảo Plugin Zalo Personal có sẵn.
- Các bản phát hành OpenClaw đóng gói hiện tại đã đi kèm Plugin này.
- Các bản cài đặt cũ hơn/tùy chỉnh có thể thêm thủ công bằng các lệnh ở trên.
- Đăng nhập (QR, trên máy Gateway):
openclaw channels login --channel zalouser- Quét mã QR bằng ứng dụng Zalo trên di động.
- Bật kênh:
{
channels: {
zalouser: {
enabled: true,
dmPolicy: "pairing",
},
},
}
- Khởi động lại Gateway (hoặc hoàn tất thiết lập).
- Quyền truy cập DM mặc định dùng ghép đôi; phê duyệt mã ghép đôi trong lần liên hệ đầu tiên.
Đây là gì
- Chạy hoàn toàn trong tiến trình thông qua
zca-js. - Dùng trình lắng nghe sự kiện native để nhận tin nhắn đến.
- Gửi trả lời trực tiếp qua API JS (văn bản/phương tiện/liên kết).
- Được thiết kế cho các trường hợp dùng "tài khoản cá nhân" khi Zalo Bot API không khả dụng.
Đặt tên
ID kênh là zalouser để nêu rõ rằng kênh này tự động hóa một tài khoản người dùng Zalo cá nhân (không chính thức). Chúng tôi giữ zalo cho một tích hợp Zalo API chính thức tiềm năng trong tương lai.
Tìm ID (thư mục)
Dùng CLI thư mục để khám phá peer/nhóm và ID của chúng:
openclaw directory self --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory groups list --channel zalouser --query "work"
Giới hạn
- Văn bản gửi đi được chia thành các đoạn khoảng 2000 ký tự (giới hạn của ứng dụng Zalo).
- Streaming bị chặn theo mặc định.
Kiểm soát truy cập (DM)
channels.zalouser.dmPolicy hỗ trợ: pairing | allowlist | open | disabled (mặc định: pairing).
channels.zalouser.allowFrom nên dùng ID người dùng Zalo ổn định. Trong quá trình thiết lập tương tác, các tên được nhập có thể được phân giải thành ID bằng tra cứu liên hệ trong tiến trình của Plugin.
Nếu tên thô vẫn còn trong cấu hình, khi khởi động, tên đó chỉ được phân giải khi bật channels.zalouser.dangerouslyAllowNameMatching: true. Nếu không chọn bật tùy chọn này, kiểm tra người gửi lúc chạy chỉ dựa trên ID và tên thô bị bỏ qua khi ủy quyền.
Phê duyệt qua:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Truy cập nhóm (tùy chọn)
- Mặc định:
channels.zalouser.groupPolicy = "open"(cho phép nhóm). Dùngchannels.defaults.groupPolicyđể ghi đè mặc định khi chưa đặt. - Giới hạn vào danh sách cho phép bằng:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(khóa nên là ID nhóm ổn định; tên chỉ được phân giải thành ID khi khởi động nếu bậtchannels.zalouser.dangerouslyAllowNameMatching: true)channels.zalouser.groupAllowFrom(kiểm soát người gửi nào trong các nhóm được phép có thể kích hoạt bot)
- Chặn tất cả nhóm:
channels.zalouser.groupPolicy = "disabled". - Trình hướng dẫn cấu hình có thể nhắc nhập danh sách cho phép của nhóm.
- Khi khởi động, OpenClaw phân giải tên nhóm/người dùng trong danh sách cho phép thành ID và chỉ ghi log ánh xạ khi bật
channels.zalouser.dangerouslyAllowNameMatching: true. - Theo mặc định, khớp danh sách cho phép của nhóm chỉ dựa trên ID. Tên chưa phân giải bị bỏ qua khi xác thực trừ khi bật
channels.zalouser.dangerouslyAllowNameMatching: true. channels.zalouser.dangerouslyAllowNameMatching: truelà chế độ tương thích dùng khi cần khẩn cấp, bật lại việc phân giải tên có thể thay đổi khi khởi động và khớp tên nhóm lúc chạy.- Nếu chưa đặt
groupAllowFrom, runtime sẽ fallback sangallowFromcho kiểm tra người gửi trong nhóm. - Kiểm tra người gửi áp dụng cho cả tin nhắn nhóm thông thường và lệnh điều khiển (ví dụ
/new,/reset).
Ví dụ:
{
channels: {
zalouser: {
groupPolicy: "allowlist",
groupAllowFrom: ["1471383327500481391"],
groups: {
"123456789": { allow: true },
"Work Chat": { allow: true },
},
},
},
}
Chặn theo nhắc tên trong nhóm
channels.zalouser.groups.<group>.requireMentionkiểm soát việc trả lời trong nhóm có yêu cầu nhắc tên hay không.- Thứ tự phân giải: ID/tên nhóm chính xác -> slug nhóm đã chuẩn hóa ->
*-> mặc định (true). - Điều này áp dụng cho cả các nhóm trong danh sách cho phép và chế độ nhóm mở.
- Trích dẫn một tin nhắn của bot được tính là nhắc tên ngầm định để kích hoạt trong nhóm.
- Các lệnh điều khiển đã được ủy quyền (ví dụ
/new) có thể bỏ qua chặn theo nhắc tên. - Khi một tin nhắn nhóm bị bỏ qua vì yêu cầu nhắc tên, OpenClaw lưu tin nhắn đó dưới dạng lịch sử nhóm đang chờ và đưa vào tin nhắn nhóm được xử lý tiếp theo.
- Giới hạn lịch sử nhóm mặc định là
messages.groupChat.historyLimit(fallback50). Bạn có thể ghi đè cho từng tài khoản bằngchannels.zalouser.historyLimit.
Ví dụ:
{
channels: {
zalouser: {
groupPolicy: "allowlist",
groups: {
"*": { allow: true, requireMention: true },
"Work Chat": { allow: true, requireMention: false },
},
},
},
}
Nhiều tài khoản
Tài khoản ánh xạ tới hồ sơ zalouser trong trạng thái OpenClaw. Ví dụ:
{
channels: {
zalouser: {
enabled: true,
defaultAccount: "default",
accounts: {
work: { enabled: true, profile: "work" },
},
},
},
}
Đang nhập, phản ứng và xác nhận gửi
- OpenClaw gửi sự kiện đang nhập trước khi gửi một phản hồi (theo nỗ lực tối đa).
- Hành động phản ứng tin nhắn
reactđược hỗ trợ chozalousertrong hành động kênh.- Dùng
remove: trueđể xóa một emoji phản ứng cụ thể khỏi tin nhắn. - Ngữ nghĩa phản ứng: Reactions
- Dùng
- Với tin nhắn đến có siêu dữ liệu sự kiện, OpenClaw gửi xác nhận đã gửi + đã xem (theo nỗ lực tối đa).
Khắc phục sự cố
Đăng nhập không được lưu:
openclaw channels status --probe- Đăng nhập lại:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
Danh sách cho phép/tên nhóm không phân giải được:
- Dùng ID dạng số trong
allowFrom/groupAllowFromvà ID nhóm ổn định tronggroups. Nếu bạn cố ý cần tên bạn bè/nhóm chính xác, hãy bậtchannels.zalouser.dangerouslyAllowNameMatching: true.
Đã nâng cấp từ thiết lập cũ dựa trên CLI:
- Xóa mọi giả định cũ về tiến trình
zcabên ngoài. - Kênh hiện chạy hoàn toàn trong OpenClaw mà không cần binary CLI bên ngoài.
Liên quan
- Tổng quan về kênh — tất cả kênh được hỗ trợ
- Ghép đôi — xác thực DM và luồng ghép đôi
- Nhóm — hành vi trò chuyện nhóm và chặn theo nhắc tên
- Định tuyến kênh — định tuyến phiên cho tin nhắn
- Bảo mật — mô hình truy cập và tăng cường bảo mật