Bỏ qua để đến Nội dung
Beta: Hubz API v1 đang được triển khai lên production. Endpoint và giới hạn có thể thay đổi; mọi thay đổi được ghi ở Nhật ký thay đổi.

Hubz API v1 (beta) · Hubz v0.7.0 · 2026-11-06

Lấy sự kiện bị lỡ với GET /v1/events

Phần mềm nằm trong mạng nội bộ, sau NAT (ví dụ một Odoo cài tại văn phòng) không nhận được webhook. Khi đó, gọi GET /v1/events định kỳ để kéo sự kiện. Đây cũng là cách lấy lại sự kiện bị lỡ khi webhook lỗi.

Cách kéo

  1. Lần đầu gọi với after=0.
  2. Xử lý các sự kiện trả về theo thứ tự, rồi lưu giá trị next.
  3. Lần sau gọi với after=<next>. Lấy hết trang thì gọi tiếp ngay; hết sự kiện thì chờ đến lần kéo sau.
curl "https://api.hubz.vn/v1/events?after=0&limit=100" \
  -H "Authorization: Bearer hbz_live_xxx"
{
  "events": [
    {"id": "1042", "type": "message.created", "version": 1, "createdAt": "2026-11-06T09:15:02Z", "data": {"…": "…"}},
    {"id": "1043", "type": "conversation.updated", "version": 1, "createdAt": "2026-11-06T09:15:40Z", "data": {"…": "…"}}
  ],
  "next": "1043"
}

Tham số

Tham sốÝ nghĩa
afterGiá trị next của lần gọi trước; 0 cho lần đầu.
limitMặc định 100, tối đa 500.
typesLọc loại sự kiện, cách nhau dấu phẩy, ví dụ message.created,conversation.updated.

Khóa cần quyền events. Sự kiện được giữ 7 ngày. Id sự kiện tăng dần: xử lý mỗi id một lần.

Ví dụ Python

import time

import requests

API = "https://api.hubz.vn"
HEADERS = {"Authorization": "Bearer hbz_live_xxx"}


def poll(after: str = "0"):
    """Fetch every new event once; store `after` between runs (events are kept 7 days)."""
    while True:
        res = requests.get(f"{API}/v1/events", headers=HEADERS, params={"after": after, "limit": 500}, timeout=30)
        if res.status_code == 429:
            time.sleep(int(res.headers.get("Retry-After", "60")))
            continue
        res.raise_for_status()
        page = res.json()
        for event in page["events"]:
            handle(event)  # your code: idempotent, keyed by event["id"]
        after = page["next"]
        if len(page["events"]) < 500:
            return after

Hubz không phải sản phẩm của Zalo hay VNG; Hubz không dùng API chính thức của Zalo. Hubz không liên kết với Odoo S.A.; Odoo là nhãn hiệu của Odoo S.A.