التحقق من الحضور الحي (السيلفي البيومترية)
التقاط السيلفي البيومترية مع التحقق المدمج من الحضور الحي. يرشد SDK المستخدم حتى يتم الحصول على إطار صالح بيومتريًا عبر SmartFrames، ويعيد الصورة بصيغة Base64 + JWT.
يستخدم نوع الالتقاط هذا قدرة Liveness. للاطلاع على نظرة عامة مفاهيمية حول كيفية عمل Liveness، راجع صفحة قدرة Liveness.
يدير SDK جلسة الالتقاط الكاملة:
- يفتح الكاميرا مع تراكب SmartFrame.
- يرشد المستخدم لوضع وجهه داخل الإطار.
- يتحقق من الحضور الحي — لا تكتمل الجلسة إلا عندما يكون المستخدم حاضرًا فعليًا.
- يعيد كائنًا يحتوي على
base64(معاينة) وencrypted(JWT لاستخدامه مع API) عبر معاودة الاتصالsuccess.
يتيح Web وضعَي كاميرا عبر SelfieCameraTypes:
SelfieCameraTypes.NORMAL— وضع الكاميرا القياسي (التقاط يدوي).SelfieCameraTypes.SMART— وضع الكاميرا الذكي مع التقاط تلقائي وإرشاد بالصورة الظلية.
عند استخدام SMART، يجب أيضًا تحميل نماذج الرؤية الحاسوبية عبر setModelsPath أثناء التهيئة.
الخطوة 1 — تنفيذ كائن callback
يستخدم Web SDK كائن callback — يُمرَّر إلى open() — للتعامل مع أحداث النجاح والأخطاء. كلا المعالجَين إلزاميان:
| المعالج | متى يُستدعى |
|---|---|
on.success(obj) | اكتمل الالتقاط بنجاح — يستقبل كائنًا يحتوي على base64 وencrypted |
on.error(error) | حدث خطأ أثناء الجلسة — يستقبل كائن ErrorBio |
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
كائن callback إلزامي. إذا لم يُنفَّذ بشكل صحيح (بحيث يغطي كلًّا من حدثَي success وerror)، فإن SDK يُطلق استثناءً يُعرض في وحدة تحكم المستخدم إذا لم يُعالَج.
الخطوة 2 — بناء الكاميرا وتجهيز جلسة السيلفي
ابنِ نسخة الكاميرا واستدعِ prepareSelfieCamera مع تمرير UnicoConfig ونوع SelfieCameraTypes المطلوب:
يجب ألا تتجاوز الفترة الفاصلة بين إنشاء encrypted وإرساله إلى API 10 دقائق.
const unicoCamera = unicoCameraBuilder.build();
const config = new UnicoConfig()
.setHostname("<YOUR_HOSTNAME>")
.setHostKey("<YOUR_HOST_KEY>");
unicoCamera.prepareSelfieCamera(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
لتحسين بدء تشغيل الكاميرا، يمكنك فصل استدعاءات prepareSelfieCamera() وopen() — إبقاء خطوة التجهيز جاهزة بينما يتنقل المستخدم إلى شاشة الالتقاط.
الخطوة 3 — (اختياري) الاستخدام داخل iFrame
يدعم Web SDK التحقق التفاعلي من الحضور الحي المضمّن في iFrame عبر prepareSelfieCameraForIFrame():
unicoCamera.prepareSelfieCameraForIFrame(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
نفّذ عنصر <iframe> مع الأذونات المطلوبة:
<iframe allow="fullscreen;camera;geolocation" allowFullScreen src="your_app_url"></iframe>
prepareSelfieCameraForIFrame() لا تعمل إلا داخل iFrame — استخدامها خارجه يُفضي إلى الخطأ 73724. وبالمثل، استخدام prepareSelfieCamera() داخل iFrame يُفضي أيضًا إلى الخطأ 73724.
لإجراء الالتقاط، يجب أن تكون الصفحة في وضع ملء الشاشة حتى يتمكن SDK من تغيير الحجم تلقائيًا. تُقيّد Apple استخدام واجهات برمجة تطبيقات ملء الشاشة على أجهزة iPhone تحديدًا (يمكن استخدامها على iPad). للالتقاط على أجهزة iPhone، هيّئ موضع iFrame يدويًا.
للاطلاع على معالجة النتيجة الكاملة، راجع استقبال النتيجة.