Tài liệu ZaPro API
Gửi tin Zalo đầu tiên trong khoảng 5 phút, chưa cần OA riêng. Địa chỉ gốc: https://app.zapro.vn/v1.
ZaPro là API gửi tin mẫu ZBS (trước gọi là ZNS) từ Zalo OA của bạn. Trang này đi từ lúc tạo tài khoản tới tin đầu tiên trên điện thoại.
1. Tạo API key
Tạo tài khoản, mở trang Bắt đầu và bấm Tạo API key. Key chỉ hiện đầy đủ một lần: lưu vào biến môi trường ZAPRO_API_KEY trên máy chủ, không đưa vào code chạy trên trình duyệt.
2. Gửi tin thử từ OA Sandbox
Thêm số điện thoại của bạn ở trang Bắt đầu, rồi gửi bằng "oa": "sandbox" và mẫu xac-nhan-lich-hen đã duyệt sẵn. Sandbox chỉ gửi tới số của thành viên công ty, mỗi tháng 50 tin thử miễn phí.
curl -X POST https://app.zapro.vn/v1/messages \ -H "Authorization: Bearer $ZAPRO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "oa": "sandbox", "to": "0901234567", "template": "xac-nhan-lich-hen", "data": { "ten": "Lan", "dich_vu": "Gội đầu dưỡng sinh", "gio": "15:30", "ngay": "08/11" } }'
const res = await fetch("https://app.zapro.vn/v1/messages", { method: "POST", headers: { Authorization: `Bearer ${process.env.ZAPRO_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ oa: "sandbox", to: "0901234567", template: "xac-nhan-lich-hen", data: { "ten": "Lan", "dich_vu": "Gội đầu dưỡng sinh", "gio": "15:30", "ngay": "08/11" }, }), }); const message = await res.json();
$ch = curl_init("https://app.zapro.vn/v1/messages"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("ZAPRO_API_KEY"), "Content-Type: application/json"], CURLOPT_POSTFIELDS => json_encode([ "oa" => "sandbox", "to" => "0901234567", "template" => "xac-nhan-lich-hen", "data" => ["ten" => "Lan", "dich_vu" => "Gội đầu dưỡng sinh", "gio" => "15:30", "ngay" => "08/11"], ]), ]); $message = json_decode(curl_exec($ch), true);
import os, requests res = requests.post( "https://app.zapro.vn/v1/messages", headers={"Authorization": f"Bearer {os.environ['ZAPRO_API_KEY']}"}, json={ "oa": "sandbox", "to": "0901234567", "template": "xac-nhan-lich-hen", "data": { "ten": "Lan", "dich_vu": "Gội đầu dưỡng sinh", "gio": "15:30", "ngay": "08/11" }, }, ) message = res.json()
ZaPro trả 202 và tin ở trạng thái queued. Xem tin ở trang Tin nhắn hoặc gọi GET /v1/messages/{id}.
3. Kết nối Zalo OA của bạn
Ở trang Zalo OA, bấm Kết nối Zalo OA, đăng nhập Zalo và đồng ý cấp quyền. OA cần được Zalo xác thực và ở gói Tăng trưởng trở lên. Sau đó đổi "sandbox" thành mã OA của bạn, ví dụ "hoa-sen-spa".