Strona główna / Deweloperzy

Zbuduj w jedno popołudnie

Uwierzytelnij, pobierz obecność, zarejestruj odcisk palca i otwórz drzwi — z przykładami do skopiowania w języku, którego już używasz.

Szybki start

Trzy kroki do pierwszego wywołania

Uzyskaj klucz API

Załóż konto w portalu deweloperskim i sparuj urządzenie przez numer seryjny. Otrzymasz AuthToken.

Uwierzytelniaj każde żądanie

Przekazuj AuthToken z każdym wywołaniem. Ogranicza on dostęp do Twojego konta i konkretnego urządzenia.

Wywołaj endpoint

Zacznij od GetAttendanceByDate, aby potwierdzić przepływ danych, a potem przejdź do rejestracji i kontroli dostępu.

Bazowy 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();

Ten sam wzorzec dotyczy każdej operacji — zmień ścieżkę i parametry.

Typowe przepisy

Skopiuj, wklej, wdróż

POST

Zarejestruj użytkownika

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

Otwórz drzwi

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

Zarejestruj webhook

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

Trzymaj klucze po stronie serwera

Nigdy nie osadzaj AuthToken w kodzie po stronie klienta. Kieruj wywołania przez swój backend.

🔄

Zadbaj o idempotentność webhooków

Brama ponawia próby, dopóki nie zwrócisz 200. Deduplikuj po identyfikatorze zdarzenia, aby ponowienia były bezpieczne.

⏳

Obsługuj polecenia w kolejce

Jeśli urządzenie jest offline, otrzymasz 409; polecenie trafia do kolejki. Odpytaj GetCommandStatus.

Testowanie lokalne

Testuj adresy URL callbacków ze swojego komputera

Twój komputer deweloperski jest za zaporą, więc brama nie może bezpośrednio dotrzeć do localhost. Udostępnij go przez tunel, wskaż publiczny adres jako Callback URL i wywołaj testowe odbicie.

  • Zawsze używaj adresu callbacku HTTPS
  • Utrzymuj tunel aktywny przez całą sesję testową
  • Bezpłatne adresy ngrok zmieniają się po restarcie — zaktualizuj callback, gdy się zmienią
  • Zadbaj o idempotentność handlera — brama ponawia próby, dopóki nie otrzyma 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

Podłącz urządzenie

Skieruj terminal na bramę

Większość terminali obecności (ZKTeco, eSSL i zgodne) używa protokołu ICLOCK / push. Ustaw pola serwera w chmurze na urządzeniu, a będzie ono przesyłać obecność na Twoje konto — bez komputera i lokalnego oprogramowania.

⚙
Na urządzeniu: Menu → COMM → Cloud Server / ADMS, wpisz poniższy serwer, a następnie upewnij się, że na ekranie głównym pojawiła się ikona połączenia z serwerem.

Ustawienia serwera urządzenia

IP serwera
152.53.172.248
Port
8123 (deweloperski / testowy) · 80 (produkcyjny)
Włącz nazwę domeny
WYŁ.
Serwer proxy
WYŁ.
Protokół
ICLOCK / Push

Przed ustawieniem serwera w chmurze dopasuj IP / podsieć / bramę / DNS urządzenia do swojej sieci LAN (lub użyj DHCP).

Masz pod ręką numer seryjny urządzenia?

Sparuj je w portalu deweloperskim i wykonaj wywołanie na żywo w kilka minut.