الرئيسية / المطورون

ابنِ في أمسية واحدة

صادِق، واسحب الحضور، وسجّل بصمة، وافتح بابًا — بأمثلة جاهزة للنسخ واللصق باللغة التي تستخدمها بالفعل.

البدء السريع

ثلاث خطوات إلى أول استدعاء

احصل على مفتاح 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 في شيفرة جهة العميل أبدًا. مرّر الاستدعاءات عبر خادمك الخلفي.

🔄

اجعل webhooks متساوية الأثر (idempotent)

تعيد البوابة المحاولة إلى أن تعيد 200. أزل التكرار بالاعتماد على معرّف الحدث لتكون إعادة المحاولة آمنة.

⏳

تعامل مع الأوامر الموضوعة في قائمة الانتظار

إذا كان الجهاز غير متصل ستحصل على 409؛ ويوضع الأمر في قائمة الانتظار. استعلم عن GetCommandStatus دوريًا.

الاختبار المحلي

اختبر عناوين URL لـ callback من جهازك

يقع جهاز التطوير لديك خلف جدار حماية، لذا لا تستطيع البوابة الوصول إلى localhost مباشرةً. اكشفه عبر نفق (tunnel)، ووجّه عنوان Callback URL إلى العنوان العام، ثم أطلق بصمة حضور تجريبية.

  • استخدم دائمًا عنوان callback بروتوكول HTTPS
  • أبقِ النفق يعمل طوال جلسة الاختبار
  • تتغير عناوين 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. اضبط حقول خادم السحابة على الجهاز فيبثّ الحضور إلى حسابك — دون حاجة إلى حاسوب أو برنامج محلي.

⚙
على الجهاز: Menu → COMM → Cloud Server / ADMS، أدخل الخادم أدناه، ثم تأكد من ظهور أيقونة الاتصال بالخادم على الشاشة الرئيسية.

إعدادات خادم الجهاز

عنوان IP للخادم
152.53.172.248
المنفذ
8123 (للتطوير / الاختبار) · 80 (للإنتاج)
تمكين اسم النطاق
OFF
الخادم الوكيل
OFF
البروتوكول
ICLOCK / Push

طابِق عنوان IP للجهاز وقناع الشبكة الفرعية والبوابة وDNS مع شبكتك المحلية (LAN) (أو استخدم DHCP) قبل ضبط خادم السحابة.

هل رقم جهازك التسلسلي في متناول يدك؟

أقرِنه على بوابة المطورين وأجرِ استدعاءً مباشرًا في دقائق.