9.1 KiB
Hướng Dẫn Thiết Lập WhatsApp
Cập nhật lần cuối: 2026-01-18
Hướng dẫn này hướng dẫn bạn thiết lập quyền truy cập WhatsApp Business API cho MKT WhatsApp Service.
Yêu Cầu Tiên Quyết
- Tài khoản Meta Business
- Quyền truy cập Facebook Business Manager
- Doanh nghiệp đã xác minh (cho giới hạn tier cao hơn)
- Domain với HTTPS (cho webhook)
Bước 1: Tạo Tài Khoản Meta Business
- Truy cập Meta Business Suite
- Nhấp "Create Account"
- Nhập tên doanh nghiệp và thông tin chi tiết
- Xác minh email doanh nghiệp của bạn
Bước 2: Truy Cập WhatsApp API
Tùy Chọn A: Cloud API (Khuyến Nghị)
- Truy cập Meta for Developers
- Nhấp "My Apps" → "Create App"
- Chọn "Business" làm loại app
- Điền thông tin app (tên, email liên hệ, tài khoản doanh nghiệp)
- Sau khi tạo, nhấp "Add Product"
- Chọn "WhatsApp" → "Set Up"
Tùy Chọn B: On-Premise API
Không được khuyến nghị cho hầu hết các trường hợp sử dụng. Yêu cầu cơ sở hạ tầng máy chủ chuyên dụng và hợp tác BSP.
Bước 3: Lấy Số Điện Thoại
Số Điện Thoại Thử Nghiệm (Development)
Meta cung cấp số thử nghiệm cho phát triển:
- Trong cài đặt sản phẩm WhatsApp, bạn sẽ thấy một số điện thoại thử nghiệm
- Sao chép
Phone Number ID - Thêm người nhận thử nghiệm (tối đa 5) trong tab Configuration
Số Điện Thoại Production
- Nhấp "Add Phone Number"
- Chọn một trong hai:
- Use existing: Di chuyển số WhatsApp Business hiện có
- Register new: Lấy số mới từ Meta
- Xác minh số điện thoại qua SMS/cuộc gọi
- Hoàn tất xác minh doanh nghiệp
Quan Trọng: Sau khi kết nối với API, bạn không thể sử dụng Ứng dụng WhatsApp Business trên số này.
Bước 4: Tạo Access Token
Token Tạm Thời (24 giờ)
- Truy cập WhatsApp → API Setup
- Sao chép access token tạm thời
- Chỉ sử dụng để thử nghiệm
Token Vĩnh Viễn
- Truy cập Meta Business Suite → Settings → System Users
- Nhấp "Add" → Tạo system user (tên: "WhatsApp API")
- Gán vai trò "Admin"
- Nhấp "Generate Token"
- Chọn app của bạn
- Chọn quyền:
whatsapp_business_managementwhatsapp_business_messaging
- Sao chép token (lưu trữ an toàn, chỉ hiển thị một lần)
Bước 5: Cấu Hình Webhook
Lấy Webhook URL
Từ dịch vụ đã triển khai của bạn:
https://yourdomain.com/api/v1/whatsapp/webhooks
Tạo Verify Token
Tạo chuỗi ngẫu nhiên để xác minh webhook:
# Tạo token ngẫu nhiên
openssl rand -hex 32
Lưu điều này dưới dạng WHATSAPP_WEBHOOK_VERIFY_TOKEN trong .env của bạn
Thiết Lập Trong Meta
- Truy cập WhatsApp → Configuration → Webhook
- Nhấp "Edit"
- Nhập:
- Callback URL:
https://yourdomain.com/api/v1/whatsapp/webhooks - Verify Token: Token bạn đã tạo
- Callback URL:
- Nhấp "Verify and Save"
Đăng Ký Sự Kiện
Sau khi xác minh, đăng ký:
- ✅
messages- Tin nhắn khách hàng đến - ✅
message_status(tùy chọn) - Cập nhật trạng thái gửi/đã đọc - ✅
messaging_postbacks(tùy chọn) - Tương tác nút
Bước 6: Lấy App Secret
Để xác minh chữ ký webhook:
- Truy cập App Dashboard → Settings → Basic
- Nhấp "Show" bên cạnh "App Secret"
- Sao chép và lưu dưới dạng
WHATSAPP_APP_SECRET
Bước 7: Cấu Hình Dịch Vụ
Cập nhật file .env của bạn:
# WhatsApp Configuration
WHATSAPP_PHONE_NUMBER_ID=123456789012345
WHATSAPP_ACCESS_TOKEN=your_permanent_token_here
WHATSAPP_WEBHOOK_VERIFY_TOKEN=your_verify_token_here
WHATSAPP_APP_SECRET=your_app_secret_here
WHATSAPP_API_VERSION=v21.0
Bước 8: Kiểm Tra Tích Hợp
Xác Minh Webhook
Dịch vụ sẽ tự động xử lý xác minh webhook. Kiểm tra logs:
docker-compose logs -f mkt-whatsapp-service-net
Bạn nên thấy:
[INFO] Webhook verification successful
Gửi Tin Nhắn Thử Nghiệm
- Lấy số WhatsApp của khách hàng thử nghiệm
- Sử dụng API để gửi tin nhắn:
curl -X POST http://localhost/api/v1/whatsapp/conversations/{conversationId}/messages \
-H "Content-Type: application/json" \
-d '{
"content": {
"type": "text",
"text": "Xin chào từ MKT WhatsApp Service!"
}
}'
Nhận Tin Nhắn Thử Nghiệm
- Gửi tin nhắn từ WhatsApp của khách hàng thử nghiệm đến số doanh nghiệp của bạn
- Kiểm tra service logs cho webhook đến
- Xác minh tin nhắn được lưu trữ trong database
Bước 9: Message Templates
Đối với tin nhắn ngoài cửa sổ 24 giờ, bạn cần templates đã phê duyệt.
Tạo Template
- Truy cập WhatsApp → Message Templates
- Nhấp "Create Template"
- Điền:
- Name:
order_confirmation(chữ thường, chỉ dấu gạch dưới) - Category: Utility/Marketing/Authentication
- Language: Vietnamese, English, v.v.
- Content: Sử dụng placeholders như
{{1}},{{2}}
- Name:
Ví dụ template:
Xin chào {{1}}!
Đơn hàng #{{2}} của bạn đã được xác nhận.
Tổng tiền: {{3}} VNĐ
Cảm ơn bạn đã mua hàng!
- Gửi để xem xét (phê duyệt mất 1-3 ngày)
Sử Dụng Template Trong Dịch Vụ
Sau khi được phê duyệt, cập nhật .env:
WHATSAPP_TEMPLATE_ORDER_CONFIRMATION=order_confirmation
Bước 10: Nâng Cấp Giới Hạn Tier
Tier Ban Đầu
Số điện thoại mới bắt đầu ở Tier 1 (1.000 cuộc hội thoại/ngày).
Quy Trình Nâng Cấp
Tier tự động nâng cấp dựa trên:
- Chất lượng số điện thoại (tỷ lệ chặn thấp)
- Khối lượng gửi
- Thời gian (tối thiểu 7 ngày ở tier hiện tại)
Các Mức Tier
| Tier | Giới Hạn Hàng Ngày | Tiêu Chí Nâng Cấp |
|---|---|---|
| Tier 1 | 1.000 | Tier khởi đầu |
| Tier 2 | 10.000 | 7 ngày + chất lượng tốt |
| Tier 3 | 100.000 | 7 ngày + khối lượng cao |
| Unlimited | Không giới hạn | Yêu cầu từ Meta |
Khắc Phục Sự Cố
Xác Minh Webhook Thất Bại
Vấn Đề: "Verification token mismatch"
Giải Pháp:
- Kiểm tra
WHATSAPP_WEBHOOK_VERIFY_TOKENkhớp chính xác - Đảm bảo dịch vụ đang chạy và có thể truy cập
- Kiểm tra HTTPS hoạt động (WhatsApp yêu cầu HTTPS)
Tin Nhắn Không Gửi Được
Vấn Đề: API trả về lỗi (#131030) Recipient phone number not valid
Giải Pháp:
- Đảm bảo số bao gồm mã quốc gia không có + hoặc 0
- Định dạng:
84901234567(Vietnam), không phải+84901234567
Vấn Đề: (#368) Template not found
Giải Pháp:
- Xác minh template đã được phê duyệt trong Meta dashboard
- Kiểm tra tên template khớp chính xác
- Đảm bảo mã ngôn ngữ đúng
Vượt Giới Hạn Tốc Độ
Vấn Đề: (#130429) Rate limit exceeded
Giải Pháp:
- Kiểm tra tier hiện tại trong Meta dashboard
- Triển khai exponential backoff
- Yêu cầu nâng cấp tier nếu cần
Access Token Không Hợp Lệ
Vấn Đề: (#190) Invalid OAuth access token
Giải Pháp:
- Token có thể đã hết hạn - tạo token vĩnh viễn mới
- Kiểm tra token có quyền đúng
- Xác minh token thuộc về app đúng
Thực Hành Bảo Mật Tốt Nhất
- Không bao giờ commit tokens - Sử dụng biến môi trường
- Xoay tokens thường xuyên - Tạo tokens mới mỗi 6 tháng
- Xác minh chữ ký webhook - Luôn xác thực
X-Hub-Signature-256 - Chỉ sử dụng HTTPS - WhatsApp sẽ từ chối webhooks HTTP
- Hạn chế truy cập IP - Whitelist dải IP của Meta nếu có thể
Tối Ưu Hóa Chi Phí
- Sử dụng utility templates - Rẻ hơn marketing
- Tận dụng cửa sổ 24 giờ - Tin nhắn miễn phí trong cửa sổ
- Tránh spam - Tỷ lệ chặn cao có thể giới hạn tài khoản của bạn
- Theo dõi hội thoại - Theo dõi loại nào mở/đóng cửa sổ
Bước Tiếp Theo
- Tài Liệu API - Tìm hiểu các endpoints có sẵn
- Hướng Dẫn Automation - Thiết lập luồng tự động
- Hướng Dẫn AI Chatbot - Cấu hình AI agent