Get started with FacePing's face recognition API using Express.js
First, create a new Express project and install the required dependencies:
mkdir faceping-express
cd faceping-express
npm init -y
npm install express dotenv multer node-fetch form-data
Create a new file create-group.js
:
require('dotenv').config();
const fetch = require('node-fetch');
async function createGroup(groupName) {
try {
const response = await fetch(
`https://api.faceping.ai/groups/${groupName}`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`
}
}
);
const data = await response.json();
console.log('Group created successfully');
return data;
} catch (error) {
console.error('Error creating group:', error);
return null;
}
}
// Usage
createGroup('my-group')
.then(result => console.log(result))
.catch(error => console.error(error));
Create a new file upload-face.js
:
require('dotenv').config();
const fetch = require('node-fetch');
const FormData = require('form-data');
const fs = require('fs');
async function uploadFace(groupName, imagePath) {
try {
const formData = new FormData();
formData.append('image', fs.createReadStream(imagePath));
const response = await fetch(
`https://api.faceping.ai/groups/${groupName}/faces`,
{
method: 'POST',
body: formData,
headers: {
'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`,
...formData.getHeaders()
}
}
);
const data = await response.json();
console.log('Face uploaded successfully');
return data;
} catch (error) {
console.error('Error uploading face:', error);
return null;
}
}
// Usage
uploadFace('my-group', './face.jpg')
.then(result => console.log(result))
.catch(error => console.error(error));
Create a new file search-faces.js
:
require('dotenv').config();
const fetch = require('node-fetch');
const FormData = require('form-data');
const fs = require('fs');
async function searchFaces(groupName, imagePath) {
try {
const formData = new FormData();
formData.append('image', fs.createReadStream(imagePath));
const response = await fetch(
`https://api.faceping.ai/groups/${groupName}/search`,
{
method: 'POST',
body: formData,
headers: {
'Authorization': `Bearer ${process.env.FACEPING_API_KEY}`,
...formData.getHeaders()
}
}
);
const data = await response.json();
const matches = data.matches || [];
console.log(`Found ${matches.length} matches`);
return matches;
} catch (error) {
console.error('Error searching faces:', error);
return [];
}
}
// Usage
searchFaces('my-group', './search-face.jpg')
.then(matches => {
matches.forEach(match => {
console.log(`Match Score: ${match.score}`);
});
})
.catch(error => console.error(error));