من مضيف فارغ إلى أول عملية تنشئها وتسترجعها، في بضع دقائق.
تشغّل هذه الصفحة Human Plugin إلى جانب حاوية PostgreSQL مؤقتة لبداية سريعة في بيئتك. للنشر، راجع Docker Compose أو Kubernetes.
المتطلبات الأساسية
- Docker 24 أو أحدث، على
linux/amd64أوlinux/arm64(يعمل Docker Desktop على macOS). - بيانات اعتماد السجل ومفتاح الوصول من Unico. راجع المتطلبات الأساسية والوصول.
1. احصل على الصورة
سجّل الدخول إلى سجل Unico باسم المستخدم والرمز، مرة واحدة لكل مضيف:
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
docker pull pkg.unico.run/human-plugin-api:latest
2. شغّل PostgreSQL وHuman Plugin
docker network create human-plugin
docker run -d --name human-plugin-db --network human-plugin \
-e POSTGRES_USER=human_plugin -e POSTGRES_PASSWORD=human_plugin -e POSTGRES_DB=human_plugin \
postgres:16
اضبط مفتاح الوصول في الصدفة (shell)، ثم شغّل Human Plugin:
export HUMAN_API_ACCESS_KEY='<your access key>'
docker run -d --name human-plugin --network human-plugin --stop-timeout 60 -p 127.0.0.1:8080:8080 \
-e HUMAN_API_ACCESS_KEY \
-e POSTGRES_ADDRESS_HOST=human-plugin-db \
-e POSTGRES_USER=human_plugin \
-e POSTGRES_PASSWORD=human_plugin \
-e POSTGRES_SSL_MODE=disable \
pkg.unico.run/human-plugin-api:latest
القيمة POSTGRES_SSL_MODE=disable مخصصة لهذه القاعدة المحلية فقط. أبقِ القيمة الافتراضية require لأي قاعدة أخرى. راجع الإعدادات.
تحقق من أن Human Plugin جاهز:
curl --fail http://127.0.0.1:8080/health/ready
يجب أن ترى {"status":"ok"}. وإذا فشل الأمر، فإن docker logs human-plugin يوضح السبب.
3. أنشئ عملية
اختر أحد التدفقات. الحقول clientId وcorrelationId وcredential هي نفسها في كل تدفق.
- humantoken (الشخص يلتقط الصورة)
- api+humantoken (أنت ترسل صورة السيلفي)
يلتقط الشخص صورة السيلفي في رحلة الالتقاط. تحمل الاستجابة link الخاص بها.
curl -s -X POST http://127.0.0.1:8080/v1/processes \
-H 'Content-Type: application/json' \
-d '{
"flow": "humantoken",
"clientId": "client-a",
"correlationId": "quickstart-001",
"credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
"callbackUri": "https://example.com/callback"
}'
{
"id": "b063041c-7529-4e70-a2b4-c71c00f19801",
"state": "PROCESS_STATE_CREATED",
"token": "<SDK token>",
"link": "https://…"
}
افتح link على الهاتف والتقط صورة السيلفي. يُعاد token وlink هنا فقط: فـ Human Plugin لا يخزنهما.
لدى الواجهة الخلفية لديك صورة السيلفي بالفعل وترسلها في imageBase64. تكون الإجابة نهائية، وتتضمن Human Token والرؤى.
curl -s -X POST http://127.0.0.1:8080/v1/processes \
-H 'Content-Type: application/json' \
-d '{
"flow": "api+humantoken",
"clientId": "client-a",
"correlationId": "quickstart-002",
"credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
"imageBase64": "<base64 selfie>"
}'
{
"id": "5d1f7c2e-1b8a-4e0f-9a4b-2f6c3d9e8a71",
"state": "PROCESS_STATE_FINISHED",
"data": {
"humanToken": { "value": "6d3d71…", "status": "validated" },
"ndocs": {
"distinctClientsCount": 1,
"transactionsCount": 1,
"firstSeen": "2026-11-03",
"lastSeen": "2026-11-03",
"credentials": [
{ "type": "DUI_TYPE_NG_BVN", "countryCode": "NGA", "distinctCredentialCount": 1 }
]
}
}
}
idهو معرّف Human Plugin الخاص بالعملية. احتفظ به: فهو الطريقة الوحيدة لقراءة العملية لاحقاً.correlationIdهو مرجعك الخاص ويجب أن يكون فريداً. إعادة استخدامه تُرجع409 CORRELATION_ID_ALREADY_USED.credentialهي وثيقة الشخص. أرسلnullعند عدم وجودها. الأنواع التي يمكنك استخدامها موجودة في فهرس السمات.data.humanTokenهو من يكون الشخص، وdata.ndocsهي رؤى الشخص: ما فعله معك. راجع الرؤى.- مع Journey، تحتوي العملية المنتهية أيضاً على
data.liveness: القيمةliveعندما يأتي الالتقاط من شخص حي، وnot_liveعندما لا يكون كذلك. راجع النتيجة فيdata.
4. اقرأها من جديد
استبدل المعرّف بالمعرّف الموجود في استجابتك:
curl -s http://127.0.0.1:8080/v1/processes/b063041c-7529-4e70-a2b4-c71c00f19801
تبقى عملية Journey في الحالة PROCESS_STATE_CREATED حتى ينهي الشخص الالتقاط. اقرأها مرة أخرى بعد ذلك: تتحول الإجابة إلى PROCESS_STATE_FINISHED، مع data.humanToken وdata.liveness وdata.ndocs. تحقق من أن data.liveness.value هي live قبل أن تعتمد على النتيجة.
5. نظّف
docker rm -f human-plugin human-plugin-db && docker network rm human-plugin
التالي
- التدفقات: أي تدفق تستخدم وما يحتاجه كل منها.
- إنشاء عملية: كل حقل وكل قاعدة.
- دمج الواجهة الخلفية: ما يجب تخزينه وكيفية التعامل مع الإخفاقات.
- Human Token Journey: رحلة الالتقاط.
- أدلة الالتقاط لـ Web وAndroid وiOS وIonic وReact Native وFlutter: جانب الواجهة الأمامية من الالتقاط.
- تشغيل Human Plugin في بنيتك التحتية