OpenClaw Zalo 채널
Zalo Bot Platform을 사용하여 OpenClaw를 Zalo에 연결합니다. 이 통합을 통해 AI 어시스턴트가 베트남에서 가장 인기 있는 메시징 앱에서 메시지를 주고받을 수 있습니다. Bot Token을 설정하고 DM 정책을 구성하면 롱 폴링과 Webhook 두 가지 전달 모드로 대화를 시작할 수 있습니다.
Zalo 지원 기능
텍스트 메시지
지원
미디어 및 파일
미지원
리액션
미지원
스레드
미지원
음성 메시지
미지원
그룹 채팅
미지원
Zalo 사전 요구사항
- Zalo Bot Platform(bot.zaloplatforms.com)에 접근할 수 있는 Zalo 계정
- Zalo Bot Platform 대시보드에서 발급받은 Bot Token
- OpenClaw Gateway가 실행 중이고 설정 완료
- Webhook 모드 사용 시: 공개적으로 접근 가능한 HTTPS 엔드포인트
Zalo 빠른 설정
Zalo Bot 생성 및 Token 발급
bot.zaloplatforms.com에 접속하여 Zalo 계정으로 로그인하고 새 Bot을 생성합니다. 대시보드에서 Bot Token(형식: 12345689:abc-xyz)을 복사합니다.
Zalo 채널 설정 추가
Zalo 채널 설정을 ~/.openclaw/openclaw.json에 추가합니다. botToken, dmPolicy(pairing, allowlist, open 또는 disabled)를 설정하고, 선택적으로 Webhook 설정을 구성합니다.
Gateway 시작 및 테스트
'openclaw start'로 Gateway를 시작합니다. 기본적으로 롱 폴링 모드로 연결됩니다. Zalo에서 봇에게 메시지를 보내 연결이 정상적인지 확인합니다.
Zalo 구성 예시
{
"channels": {
"zalo": {
"enabled": true,
"botToken": "12345689:abc-xyz",
"dmPolicy": "pairing"
}
}
}Zalo 상세 문서
아키텍처 개요
Zalo Bot 생성
{
"channels": {
"zalo": {
"enabled": true,
"botToken": "12345689:abc-xyz"
}
}
}DM 정책
{
"channels": {
"zalo": {
"dmPolicy": "allowlist",
"allowFrom": ["123456789", "987654321"]
}
}
}Webhook 설정
{
"channels": {
"zalo": {
"botToken": "12345689:abc-xyz",
"webhookUrl": "https://your-server.com/zalo/webhook",
"webhookSecret": "your-secret-string-8-to-256-chars",
"webhookPath": "/zalo/webhook"
}
}
}메시지 처리
다중 계정 설정
{
"channels": {
"zalo": {
"accounts": {
"support-bot": {
"botToken": "token-for-support-bot",
"dmPolicy": "open"
},
"team-bot": {
"botToken": "token-for-team-bot",
"dmPolicy": "allowlist",
"allowFrom": ["111222333"]
}
}
}
}
}아웃바운드 메시징
openclaw message send --channel zalo --target 123456789프록시 설정
{
"channels": {
"zalo": {
"proxy": "http://proxy.example.com:8080"
}
}
}Zalo 구성 참조
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | false | Zalo 채널 활성화 또는 비활성화 |
| botToken | string | "" | Zalo Bot Platform(bot.zaloplatforms.com)에서 발급받은 Bot Token |
| tokenFile | string | "" | 인라인 설정 대신 파일 경로에서 Bot Token을 읽기 |
| dmPolicy | string | "pairing" | 봇에게 DM할 수 있는 사용자를 제어. 옵션: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | 봇과 대화를 허용할 숫자 Zalo 사용자 ID 목록(dmPolicy가 allowlist인 경우) |
| mediaMaxMb | number | 5 | 수신 미디어 파일의 최대 크기(MB) |
| webhookUrl | string | "" | Webhook 모드용 HTTPS URL. 설정 시 롱 폴링이 비활성화됨 |
| webhookSecret | string | "" | X-Bot-Api-Secret-Token 헤더를 통한 Webhook 검증용 시크릿 문자열(8~256자) |
| webhookPath | string | "" | Gateway HTTP 서버의 사용자 정의 Webhook 경로 |
| proxy | string | "" | Zalo로의 아웃바운드 API 요청용 프록시 URL |
| accounts.<id>.botToken | string | "" | 다중 계정 모드에서 특정 계정의 Bot Token |
| accounts.<id>.dmPolicy | string | "pairing" | 특정 계정의 DM 정책 재정의 |
| accounts.<id>.webhookUrl | string | "" | 특정 계정의 Webhook URL 재정의 |
Zalo 채널 활성화 또는 비활성화
Zalo Bot Platform(bot.zaloplatforms.com)에서 발급받은 Bot Token
인라인 설정 대신 파일 경로에서 Bot Token을 읽기
봇에게 DM할 수 있는 사용자를 제어. 옵션: pairing, allowlist, open, disabled
봇과 대화를 허용할 숫자 Zalo 사용자 ID 목록(dmPolicy가 allowlist인 경우)
수신 미디어 파일의 최대 크기(MB)
Webhook 모드용 HTTPS URL. 설정 시 롱 폴링이 비활성화됨
X-Bot-Api-Secret-Token 헤더를 통한 Webhook 검증용 시크릿 문자열(8~256자)
Gateway HTTP 서버의 사용자 정의 Webhook 경로
Zalo로의 아웃바운드 API 요청용 프록시 URL
다중 계정 모드에서 특정 계정의 Bot Token
특정 계정의 DM 정책 재정의
특정 계정의 Webhook URL 재정의
Zalo 자주 묻는 질문
Zalo 문제 해결
Bot Token이 유효하지 않거나 만료되었거나 Gateway가 실행되지 않고 있을 수 있습니다. Webhook 모드에서는 HTTPS 엔드포인트에 접근할 수 없을 수 있습니다.
롱 폴링은 Webhook 모드에 비해 고유한 지연 시간이 있습니다. 네트워크 불안정으로 메시지가 일괄 처리될 수도 있습니다.
dmPolicy가 'pairing'으로 설정되지 않았거나 봇이 Zalo에 제대로 연결되지 않았을 수 있습니다.
이미지 파일이 mediaMaxMb 제한을 초과했거나 Zalo API가 일시적으로 사용할 수 없을 수 있습니다.
설정의 webhookSecret이 Zalo가 기대하는 것과 일치하지 않거나 엔드포인트가 올바른 응답을 반환하지 않고 있을 수 있습니다.