Bài viết sau trình bày về ý tưởng thiết kế một Web Service trung gian giữa Client và Zalo viết bằng PHP. Đây là thiết kế cơ sở để frontend viết bằng JavaScript ở trình duyệt có thể kết nối với Zalo API mà không bị lỗi cross domain.
Hiện tại Zalo API chưa hỗ trợ CORS nên ta không thể sử dụng JavaScript gọi trực tiếp từ trình duyệt được. Thay vào đó ta xây dựng một Web Service trung gian – là một proxy giữa Client và Zalo. Ngoài ra, Web Service này còn xử lý các sự kiện từ Zalo thông qua Webhooks và Callback.
Chi tiết về cách sử dụng các Zalo API có thể tham khảo tại trang Zalo For Developers.
Các chức năng cần hỗ trợ ở Web Service được mô tả theo cấu trúc mã nguồn như sau:
Source | Mô tả |
---|---|
index.php | Giao diện chính (Front-end). Sử dụng JavaScript để gọi Zalo API thông qua zalo.php . |
auth.php | Yêu cầu quyền truy cập từ Zalo để lấy Access Token cho phép ứng dụng sử dụng Social API và Official Account API. Xem thêm » |
zalo.php | “Proxy” cho các lời gọi đến REST API của Zalo (Graph API, Open API). Xem thêm » |
callback.php | Đón nhận các sự kiện liên quan đến đơn hàng trên Zalo Shop và Zalo Food. Xem thêm » |
webhooks.php | Đón nhận các sự kiện liên quan đến tương tác trên Zalo Official Account. Xem thêm » |
.htaccess | Dùng mod_rewrite để đơn giản hóa URL đến zalo.php cho giống với format của Zalo API. Xem thêm » |
Luồng xử lý của từng mã nguồn sẽ như sau: