이 API는 사용자의 얼굴 사진, 레퍼런스 사진들, 그리고 상품컷들의 AWS URL을 입력받아 가상의 사진을 생성하는 서비스를 제공합니다.
https://linaphotos.com/api/v1
<?php
$data = array(
'api_key' => 'YOUR_API_KEY',
'title' => '겨울 화보 촬영',
'request_key' => 'winter_2025_001',
'face_photo_url' => 'https://your-bucket.s3.amazonaws.com/face/user123.jpg',
'reference_photo_urls' => array(
'https://your-bucket.s3.amazonaws.com/references/ref1.jpg',
'https://your-bucket.s3.amazonaws.com/references/ref2.jpg'
),
'product_photo_urls' => array(
'https://your-bucket.s3.amazonaws.com/products/product1.jpg',
'https://your-bucket.s3.amazonaws.com/products/product2.jpg'
),
'style' => 'natural'
);
$ch = curl_init('https://linaphotos.com/api/v1/generate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
?>
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
api_key | String | 필수 | API 인증 키 |
title | String | 필수 | 요청의 제목 (최대 100자) |
request_key | String | 필수 | 클라이언트측 요청 구분 키 (영문, 숫자, 언더스코어 조합, 최대 50자) |
face_photo_url | String | 필수 | 사용자의 얼굴 사진 AWS S3 URL |
reference_photo_urls | Array | 필수 | 레퍼런스 사진들의 AWS S3 URL 배열 (최대 5장) |
product_photo_urls | Array | 필수 | 상품컷들의 AWS S3 URL 배열 (최대 10장) |
style | String | 선택 | 생성할 사진의 스타일 ("natural", "artistic", "portrait" 중 선택, 기본값: "natural") |
{
"request_id": "gen_123456789",
"request_key": "winter_2025_001",
"title": "겨울 화보 촬영",
"status": "processing",
"estimated_time": 30,
"callback_url": "https://linaphotos.com/api/v1/status/gen_123456789"
}
<?php
$request_id = 'gen_123456789';
$api_key = 'YOUR_API_KEY';
$ch = curl_init("https://linaphotos.com/api/v1/status/{$request_id}?api_key={$api_key}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
?>
{
"request_id": "gen_123456789",
"request_key": "winter_2025_001",
"title": "겨울 화보 촬영",
"status": "completed",
"result": {
"photo_urls": [
"https://your-bucket.s3.amazonaws.com/results/gen_123456789_1.jpg",
"https://your-bucket.s3.amazonaws.com/results/gen_123456789_2.jpg"
],
"created_at": "2025-02-14T10:30:00Z"
}
}
상태 코드 | 설명 |
---|---|
400 | 잘못된 요청 (파라미터 누락 또는 형식 오류) |
401 | 잘못된 API 키 |
404 | 이미지 URL에 접근할 수 없음 |
409 | 중복된 request_key |
429 | 요청 한도 초과 |
500 | 서버 오류 |
생성이 완료되면 설정된 웹훅 URL로 결과가 전송됩니다.
{
"request_id": "gen_123456789",
"request_key": "winter_2025_001",
"title": "겨울 화보 촬영",
"status": "completed",
"result": {
"photo_urls": [
"https://your-bucket.s3.amazonaws.com/results/gen_123456789_1.jpg",
"https://your-bucket.s3.amazonaws.com/results/gen_123456789_2.jpg"
],
"created_at": "2025-02-14T10:30:00Z"
}
}
<?php
// 웹훅으로 전송된 JSON 데이터 받기
$webhook_data = file_get_contents('php://input');
$data = json_decode($webhook_data, true);
// 데이터 처리
if ($data['status'] === 'completed') {
$request_id = $data['request_id'];
$request_key = $data['request_key'];
$photo_urls = $data['result']['photo_urls'];
// 여기에 결과 처리 로직 구현
// 예: 데이터베이스에 저장
saveToDatabase($request_id, $request_key, $photo_urls);
}
// 응답 반환
http_response_code(200);
echo json_encode(['status' => 'success']);
?>