หน้าแรก / นักพัฒนา

สร้างเสร็จในครึ่งวัน

ยืนยันตัวตน ดึงข้อมูลการลงเวลา ลงทะเบียนลายนิ้วมือ และเปิดประตู — พร้อมตัวอย่างให้คัดลอกวางในภาษาที่คุณใช้อยู่แล้ว

เริ่มต้นใช้งานด่วน

สามขั้นตอนสู่การเรียกครั้งแรก

รับ API key

สร้างบัญชีบนพอร์ทัลนักพัฒนาและจับคู่อุปกรณ์ด้วยหมายเลขซีเรียล คุณจะได้รับ AuthToken

ยืนยันตัวตนทุกคำขอ

ส่ง AuthToken ไปกับทุกการเรียก ซึ่งจำกัดขอบเขตการเข้าถึงตามบัญชีและอุปกรณ์เฉพาะของคุณ

เรียก endpoint

เริ่มด้วย GetAttendanceByDate เพื่อยืนยันว่าข้อมูลไหลเข้ามา แล้วไปต่อที่การลงทะเบียนและการควบคุมการเข้าถึง

Base URL

https://api.camsbiometrics.com/v3/

# Fetch attendance for a date range
curl https://api.camsbiometrics.com/v3/attendance/getbyscandate \
  -d "AuthToken=$API_KEY" \
  -d "StartDate=2026-06-01" \
  -d "EndDate=2026-06-21"
$ch = curl_init("https://api.camsbiometrics.com/v3/attendance/getbyscandate");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POSTFIELDS => [
    "AuthToken"  => $apiKey,
    "StartDate"  => "2026-06-01",
    "EndDate"    => "2026-06-21",
  ],
]);
$data = json_decode(curl_exec($ch), true);
import requests

r = requests.post(
    "https://api.camsbiometrics.com/v3/attendance/getbyscandate",
    data={
        "AuthToken": api_key,
        "StartDate": "2026-06-01",
        "EndDate": "2026-06-21",
    },
)
logs = r.json()["Attendance"]
const res = await fetch(
  "https://api.camsbiometrics.com/v3/attendance/getbyscandate",
  {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: new URLSearchParams({
      AuthToken: apiKey,
      StartDate: "2026-06-01",
      EndDate: "2026-06-21",
    }),
  }
);
const { Attendance } = await res.json();

รูปแบบเดียวกันใช้ได้กับทุกการดำเนินการ — เปลี่ยนเพียง path และพารามิเตอร์

สูตรที่ใช้บ่อย

คัดลอก วาง ส่งมอบ

POST

ลงทะเบียนผู้ใช้

curl .../v3/user/add \
 -d "AuthToken=$K" \
 -d "DeviceSN=ZK6A2300583" \
 -d "EmployeeCode=1042" \
 -d "Name=Priya"
POST

เปิดประตู

curl .../v3/access/opendoor \
 -d "AuthToken=$K" \
 -d "DeviceSN=ZK6A2300583" \
 -d "DoorNo=1"
CALLBACK

ลงทะเบียน webhook

curl .../v3/callback/register \
 -d "AuthToken=$K" \
 -d "Url=https://app/hook" \
 -d "Events=attendance.new"
🔒

เก็บคีย์ไว้ฝั่งเซิร์ฟเวอร์

ห้ามฝัง AuthToken ในโค้ดฝั่งไคลเอนต์ ให้เรียกผ่านพร็อกซีที่แบ็กเอนด์ของคุณ

🔄

ทำให้ webhook เป็น idempotent

เกตเวย์จะลองใหม่จนกว่าคุณจะตอบกลับ 200 ให้ตัดข้อมูลซ้ำโดยอ้างอิง event id เพื่อให้การลองใหม่ปลอดภัย

⏳

จัดการคำสั่งที่อยู่ในคิว

หากอุปกรณ์ออฟไลน์ คุณจะได้รับ 409 คำสั่งจะถูกจัดคิวไว้ โพลล์ GetCommandStatus

การทดสอบในเครื่อง

ทดสอบ callback URL จากเครื่องของคุณ

เครื่องพัฒนาของคุณอยู่หลังไฟร์วอลล์ เกตเวย์จึงเข้าถึง localhost โดยตรงไม่ได้ ให้เปิดเผยด้วยทันเนล ชี้ Callback URL ของคุณไปยังที่อยู่สาธารณะ แล้วทริกเกอร์การลงเวลาทดสอบ

  • ใช้ callback URL แบบ HTTPS เสมอ
  • เปิดทันเนลค้างไว้ตลอดช่วงการทดสอบ
  • URL ngrok แบบฟรีเปลี่ยนเมื่อรีสตาร์ท — อัปเดต callback เมื่อเปลี่ยน
  • ทำให้ตัวจัดการของคุณเป็น idempotent — เกตเวย์จะลองใหม่จนกว่าจะได้รับ 200
# 1. install & authenticate ngrok
ngrok config add-authtoken $TOKEN
# 2. expose your local app (e.g. port 3000)
ngrok http 3000
# Forwarding https://abc123.ngrok-free.app -> localhost:3000
# 3. set that HTTPS URL as your Callback URL
# Cams ngrok helper kit (Windows)
# download:
developer.camsbiometrics.com/setup/ngrok-helper-kit.rar
# then:
edit app.properties   # add your ngrok authtoken
run  check_ngrok.bat

เชื่อมต่ออุปกรณ์

ชี้เทอร์มินัลมาที่เกตเวย์

เทอร์มินัลลงเวลาส่วนใหญ่ (ZKTeco, eSSL และรุ่นที่เข้ากันได้) ใช้โปรโตคอล ICLOCK / push ตั้งค่าช่อง cloud-server บนอุปกรณ์ แล้วอุปกรณ์จะสตรีมข้อมูลการลงเวลาเข้าบัญชีของคุณ — ไม่ต้องใช้พีซีหรือซอฟต์แวร์ภายในเครื่อง

⚙
บนอุปกรณ์: Menu → COMM → Cloud Server / ADMS กรอกเซิร์ฟเวอร์ด้านล่าง แล้วตรวจสอบว่าไอคอนการเชื่อมต่อเซิร์ฟเวอร์ปรากฏบนหน้าจอหลัก

การตั้งค่าเซิร์ฟเวอร์ของอุปกรณ์

IP ของเซิร์ฟเวอร์
152.53.172.248
พอร์ต
8123 (นักพัฒนา / ทดสอบ) · 80 (ใช้งานจริง)
เปิดใช้ชื่อโดเมน
ปิด
พร็อกซีเซิร์ฟเวอร์
ปิด
โปรโตคอล
ICLOCK / Push

ตั้งค่า IP / subnet / เกตเวย์ / DNS ของอุปกรณ์ให้ตรงกับ LAN ของคุณ (หรือใช้ DHCP) ก่อนตั้งค่า cloud server

มีหมายเลขซีเรียลของอุปกรณ์พร้อมหรือยัง

จับคู่บนพอร์ทัลนักพัฒนาแล้วเรียกใช้งานจริงได้ในไม่กี่นาที