خانه / توسعه‌دهندگان

در یک بعدازظهر بسازید

احراز هویت کنید، حضور و غیاب را دریافت کنید، یک اثر انگشت را ثبت‌نام کنید و یک در را باز کنید — با نمونه‌های آماده کپی و اجرا به زبانی که از قبل به‌کار می‌برید.

شروع سریع

سه گام تا اولین فراخوانی

دریافت کلید API

در پورتال توسعه‌دهندگان حساب بسازید و دستگاه خود را با شماره سریال جفت کنید. یک 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();

همین الگو برای همه عملیات صدق می‌کند — فقط مسیر و پارامترها را تغییر دهید.

دستورهای پرکاربرد

کپی کنید، بچسبانید، عرضه کنید

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 را در کد سمت کلاینت جاسازی نکنید. فراخوانی‌ها را از طریق بک‌اند خود proxy کنید.

🔄

webhookها را idempotent کنید

گیت‌وی تا زمانی که 200 را برنگردانید تلاش مجدد می‌کند. بر اساس شناسه رویداد تکرارها را حذف کنید تا تلاش‌های مجدد بی‌خطر باشند.

⏳

مدیریت دستورهای صف‌شده

اگر دستگاه آفلاین باشد 409 دریافت می‌کنید؛ دستور در صف قرار می‌گیرد. GetCommandStatus را poll کنید.

آزمایش محلی

آزمایش URLهای callback از رایانه خودتان

رایانه توسعه شما پشت فایروال است، بنابراین گیت‌وی نمی‌تواند مستقیماً به localhost برسد. آن را با یک تونل در دسترس قرار دهید، URL Callback خود را به آدرس عمومی بدهید و یک تردد آزمایشی ایجاد کنید.

  • همیشه از URL callback با HTTPS استفاده کنید
  • تونل را در تمام مدت جلسه آزمایش روشن نگه دارید
  • URLهای رایگان ngrok با راه‌اندازی مجدد تغییر می‌کنند — در این صورت callback را به‌روز کنید
  • handler خود را 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 استفاده می‌کنند. فیلدهای سرور ابری را روی دستگاه تنظیم کنید تا حضور و غیاب را به حساب شما ارسال کند — بدون نیاز به رایانه یا نرم‌افزار محلی.

⚙
روی دستگاه: Menu → COMM → Cloud Server / ADMS، سرور زیر را وارد کنید، سپس مطمئن شوید نماد اتصال به سرور در صفحه اصلی ظاهر می‌شود.

تنظیمات سرور دستگاه

IP سرور
152.53.172.248
پورت
8123 (توسعه / آزمایش) · 80 (عملیاتی)
Enable Domain Name
OFF
Proxy Server
OFF
پروتکل
ICLOCK / Push

پیش از تنظیم سرور ابری، IP / subnet / gateway / DNS دستگاه را با LAN خود هماهنگ کنید (یا از DHCP استفاده کنید).

شماره سریال دستگاه را در دست دارید؟

آن را در پورتال توسعه‌دهندگان جفت کنید و در چند دقیقه یک فراخوانی زنده انجام دهید.