This package works both in Node.js and Browser environment. Supported browsers:
- Chrome
- Opera
- FireFox
- Internet Explorer (Edge)
- Safari
npm i --save @enface/sdk
yarn add @enface/sdk
// ES2015 module import:
import { createEnfaceApi } from "@enface/sdk";
// CommonJS module require:
const { createEnfaceApi } = require("@enface/sdk");
// Initialization:
const enfaceApi = createEnfaceApi({
apiKey: 'YOUR_API_KEY'
});
// Request:
const result = await enfaceApi.recognize({
images: [image]
});
// Request:
const result = await enfaceApi.liveness({
images: [image1, image2, image3]
});
// Request:
const result = await enfaceApi.recognizeLiveness({
images: [image1, image2, image3]
});
Images should be in JPEG format with minimal resolution of 800x600 pixels (1280x720 is recommended for better performance). For liveness and complex requests 3 images are required. They should be taken from a camera with strict time frames - 160-200 milliseconds between each other. Supported images inputs:
- ArrayBuffer (node.js or browser environment)
- Uint8Array (node.js or browser environment)
- Blob (browser environment)
- File, taken from
<input type="file">
(browser environment)
To completely pass the tests fill the values of the corresponding variables below with your own API keys in "__tests__/api.js"
.
- const recognitionApiKey = 'YOUR_RECOGNITION_API_KEY';
- const livenessApiKey = 'YOUR_LIVENESS_API_KEY';
- const recognizeLivenessApiKey = 'YOUR_RECOGNIZE_LIVENESS_API_KEY';
// Running the tests
npm test
Get the minified "enface.web.js" script from "dist/" folder and link to your web page. Enface library constructor will become available in the global scope:
<script src="set_correct_path/enface.web.js"></script>
<script>
const enfaceApi = createEnfaceApi({
apiKey: 'YOUR_API_KEY'
});
enfaceApi.recognize({ images: [image] }).then(function(result){
console.log(result);
});
</script>
Enface supports 2 types of API requests - GraphQL & REST. Full GraphQL documentstion can be found here: http://docs.enface.io. REST API accepts data in multipart/form-data
format with following fields:
- apiKey
- array of images in binary form
JavaScript examples:
const formData = new FormData();
formData.append('apiKey', 'YOUR_RECOGNITION_API_KEY');
formData.append('image', image, `image1.jpg`);
const result = await fetch('https://enface-api-server.herokuapp.com/rest/recognize', {
method: 'post',
body: formData,
});
const formData = new FormData();
formData.append('apiKey', 'YOUR_LIVENESS_API_KEY');
images.forEach((image, index) => formData.append('image', image, `${index}.jpg`));
const result = await fetch('https://enface-api-server.herokuapp.com/rest/liveness', {
method: 'post',
body: formData,
});
const formData = new FormData();
formData.append('apiKey', 'YOUR_RECOGNITION_LIVENESS_API_KEY');
images.forEach((image, index) => formData.append('image', image, `${index}.jpg`));
const result = await fetch('https://enface-api-server.herokuapp.com/rest/recognizeLiveness', {
method: 'post',
body: formData,
});
POST https://enface-api-server.herokuapp.com/rest/recognizeLiveness HTTP/1.1
Host: enface-api-server.herokuapp.com
Content-Type: multipart/form-data; boundary=----------------------------794180515515914733140144
----------------------------794180515515914733140144
Content-Disposition: form-data; name="apiKey"
9e9d58b2-d0c9-4465-a4a0-c96db3ebc3b4
----------------------------794180515515914733140144
Content-Disposition: form-data; name="image";
filename="0.jpg"
Content-Type: image/jpeg
binary image1
----------------------------794180515515914733140144
Content-Disposition: form-data; name="image";
filename="1.jpg"
Content-Type: image/jpeg
binary image2
----------------------------794180515515914733140144
Content-Disposition: form-data; name="image";
filename="2.jpg"
Content-Type: image/jpeg
binary image3