Get started with FacePing's face recognition API using Laravel
First, create a new Laravel project:
composer create-project laravel/laravel faceping-demo
cd faceping-demo
Add your API key to .env
:
FACEPING_API_KEY=your_api_key_here
Create a new controller app/Http/Controllers/FaceController.php
:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class FaceController extends Controller
{
public function createGroup($groupName)
{
try {
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
])->post("https://api.faceping.ai/groups/{$groupName}");
if ($response->successful()) {
return response()->json(['message' => 'Group created successfully']);
}
return response()->json(['error' => 'Failed to create group'], 500);
} catch (\Exception $e) {
return response()->json(['error' => $e->getMessage()], 500);
}
}
Add to FaceController.php
:
<?php
public function uploadFace(Request $request, $groupName)
{
if (!$request->hasFile('image')) {
return response()->json(['error' => 'No image file provided'], 400);
}
try {
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
])->attach(
'image',
file_get_contents($request->file('image')),
$request->file('image')->getClientOriginalName()
)->post("https://api.faceping.ai/groups/{$groupName}/faces");
if ($response->successful()) {
return response()->json(['message' => 'Face uploaded successfully']);
}
return response()->json(['error' => 'Failed to upload face'], 500);
} catch (\Exception $e) {
return response()->json(['error' => $e->getMessage()], 500);
}
}
Add to FaceController.php
:
<?php
public function searchFaces(Request $request, $groupName)
{
if (!$request->hasFile('image')) {
return response()->json(['error' => 'No image file provided'], 400);
}
try {
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . env('FACEPING_API_KEY')
])->attach(
'image',
file_get_contents($request->file('image')),
$request->file('image')->getClientOriginalName()
)->post("https://api.faceping.ai/groups/{$groupName}/search");
if ($response->successful()) {
return response()->json($response->json());
}
return response()->json(['error' => 'Failed to search faces'], 500);
} catch (\Exception $e) {
return response()->json(['error' => $e->getMessage()], 500);
}
}
Create routes file routes/api.php
:
<?php
use App\Http\Controllers\FaceController;
Route::post('/groups/{groupName}', [FaceController::class, 'createGroup']);
Route::post('/groups/{groupName}/faces', [FaceController::class, 'uploadFace']);
Route::post('/groups/{groupName}/search', [FaceController::class, 'searchFaces']);