Skip to content

Commit b3b39ee

Browse files
committed
Add JavaScript code snippet
1 parent e5fbbc0 commit b3b39ee

File tree

1 file changed

+99
-0
lines changed
  • articles/ai-services/computer-vision/Tutorials

1 file changed

+99
-0
lines changed

articles/ai-services/computer-vision/Tutorials/liveness.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,27 @@ The high-level steps involved in liveness orchestration are illustrated below:
152152

153153
#### [JavaScript](#tab/javascript)
154154
```javascript
155+
const endpoint = process.env['FACE_ENDPOINT'];
156+
const apikey = process.env['FACE_APIKEY'];
157+
158+
const credential = new AzureKeyCredential(apikey);
159+
const client = createFaceClient(endpoint, credential);
160+
161+
const createLivenessSessionResponse = await client.path('/detectLiveness/singleModal/sessions').post({
162+
body: {
163+
livenessOperationMode: 'Passive',
164+
deviceCorrelationId: '723d6d03-ef33-40a8-9682-23a1feb7bccd',
165+
sendResultsToClient: false,
166+
},
167+
});
168+
169+
if (isUnexpected(createLivenessSessionResponse)) {
170+
throw new Error(createLivenessSessionResponse.body.error.message);
171+
}
172+
173+
console.log('Session created.');
174+
console.log(`Session ID: ${createLivenessSessionResponse.body.sessionId}`);
175+
console.log(`Auth token: ${createLivenessSessionResponse.body.authToken}`);
155176
```
156177

157178
#### [REST API (Windows)](#tab/cmd)
@@ -269,6 +290,21 @@ The high-level steps involved in liveness orchestration are illustrated below:
269290

270291
#### [JavaScript](#tab/javascript)
271292
```javascript
293+
const getLivenessSessionResultResponse = await client.path('/detectLiveness/singleModal/sessions/{sessionId}', createLivenessSessionResponse.body.sessionId).get();
294+
295+
if (isUnexpected(getLivenessSessionResultResponse)) {
296+
throw new Error(getLivenessSessionResultResponse.body.error.message);
297+
}
298+
299+
console.log(`Session id: ${getLivenessSessionResultResponse.body.id}`);
300+
console.log(`Session status: ${getLivenessSessionResultResponse.body.status}`);
301+
console.log(`Liveness detection request id: ${getLivenessSessionResultResponse.body.result?.requestId}`);
302+
console.log(`Liveness detection received datetime: ${getLivenessSessionResultResponse.body.result?.receivedDateTime}`);
303+
console.log(`Liveness detection decision: ${getLivenessSessionResultResponse.body.result?.response.body.livenessDecision}`);
304+
console.log(`Session created datetime: ${getLivenessSessionResultResponse.body.createdDateTime}`);
305+
console.log(`Auth token TTL (seconds): ${getLivenessSessionResultResponse.body.authTokenTimeToLiveInSeconds}`);
306+
console.log(`Session expired: ${getLivenessSessionResultResponse.body.sessionExpired}`);
307+
console.log(`Device correlation id: ${getLivenessSessionResultResponse.body.deviceCorrelationId}`);
272308
```
273309

274310
#### [REST API (Windows)](#tab/cmd)
@@ -355,6 +391,11 @@ The high-level steps involved in liveness orchestration are illustrated below:
355391

356392
#### [JavaScript](#tab/javascript)
357393
```javascript
394+
const deleteLivenessSessionResponse = await client.path('/detectLiveness/singleModal/sessions/{sessionId}', createLivenessSessionResponse.body.sessionId).delete();
395+
if (isUnexpected(deleteLivenessSessionResponse)) {
396+
throw new Error(deleteLivenessSessionResponse.body.error.message);
397+
}
398+
console.log(`The session ${createLivenessSessionResponse.body.sessionId} is deleted.`);
358399
```
359400

360401
#### [REST API (Windows)](#tab/cmd)
@@ -484,6 +525,43 @@ The high-level steps involved in liveness with verification orchestration are il
484525

485526
#### [JavaScript](#tab/javascript)
486527
```javascript
528+
const endpoint = process.env['FACE_ENDPOINT'];
529+
const apikey = process.env['FACE_APIKEY'];
530+
531+
const credential = new AzureKeyCredential(apikey);
532+
const client = createFaceClient(endpoint, credential);
533+
534+
const createLivenessSessionResponse = await client.path('/detectLivenessWithVerify/singleModal/sessions').post({
535+
contentType: 'multipart/form-data',
536+
body: [
537+
{
538+
name: 'VerifyImage',
539+
// Note that this utilizes Node.js API.
540+
// In browser environment, please use file input or drag and drop to read files.
541+
body: readFileSync('test.png'),
542+
},
543+
{
544+
name: 'Parameters',
545+
body: {
546+
livenessOperationMode: 'Passive',
547+
sendResultsToClient: false,
548+
authTokenTimeToLiveInSeconds: 60,
549+
deviceCorrelationId: '723d6d03-ef33-40a8-9682-23a1feb7bccd',
550+
},
551+
},
552+
],
553+
});
554+
555+
if (isUnexpected(createLivenessSessionResponse)) {
556+
throw new Error(createLivenessSessionResponse.body.error.message);
557+
}
558+
559+
console.log('Session created:');
560+
console.log(`Session ID: ${createLivenessSessionResponse.body.sessionId}`);
561+
console.log(`Auth token: ${createLivenessSessionResponse.body.authToken}`);
562+
console.log('The reference image:');
563+
console.log(` Face rectangle: ${createLivenessSessionResponse.body.verifyImage.faceRectangle}`);
564+
console.log(` The quality for recognition: ${createLivenessSessionResponse.body.verifyImage.qualityForRecognition})
487565
```
488566

489567
#### [REST API (Windows)](#tab/cmd)
@@ -603,6 +681,22 @@ The high-level steps involved in liveness with verification orchestration are il
603681

604682
#### [JavaScript](#tab/javascript)
605683
```javascript
684+
const getLivenessSessionResultResponse = await client.path('/detectLivenessWithVerify/singleModal/sessions/{sessionId}', createLivenessSessionResponse.body.sessionId).get();
685+
if (isUnexpected(getLivenessSessionResultResponse)) {
686+
throw new Error(getLivenessSessionResultResponse.body.error.message);
687+
}
688+
689+
console.log(`Session id: ${getLivenessSessionResultResponse.body.id}`);
690+
console.log(`Session status: ${getLivenessSessionResultResponse.body.status}`);
691+
console.log(`Liveness detection request id: ${getLivenessSessionResultResponse.body.result?.requestId}`);
692+
console.log(`Liveness detection received datetime: ${getLivenessSessionResultResponse.body.result?.receivedDateTime}`);
693+
console.log(`Liveness detection decision: ${getLivenessSessionResultResponse.body.result?.response.body.livenessDecision}`);
694+
console.log(`Verification result: ${getLivenessSessionResultResponse.body.result?.response.body.verifyResult.isIdentical}`);
695+
console.log(`Verification confidence: ${getLivenessSessionResultResponse.body.result?.response.body.verifyResult.matchConfidence}`);
696+
console.log(`Session created datetime: ${getLivenessSessionResultResponse.body.createdDateTime}`);
697+
console.log(`Auth token TTL (seconds): ${getLivenessSessionResultResponse.body.authTokenTimeToLiveInSeconds}`);
698+
console.log(`Session expired: ${getLivenessSessionResultResponse.body.sessionExpired}`);
699+
console.log(`Device correlation id: ${getLivenessSessionResultResponse.body.deviceCorrelationId}`);
606700
```
607701

608702
#### [REST API (Windows)](#tab/cmd)
@@ -693,6 +787,11 @@ The high-level steps involved in liveness with verification orchestration are il
693787

694788
#### [JavaScript](#tab/javascript)
695789
```javascript
790+
const deleteLivenessSessionResponse = await client.path('/detectLivenessWithVerify/singleModal/sessions/{sessionId}', createLivenessSessionResponse.body.sessionId).delete();
791+
if (isUnexpected(deleteLivenessSessionResponse)) {
792+
throw new Error(deleteLivenessSessionResponse.body.error.message);
793+
}
794+
console.log(`The session ${createLivenessSessionResponse.body.sessionId} is deleted.`);
696795
```
697796

698797
#### [REST API (Windows)](#tab/cmd)

0 commit comments

Comments
 (0)