Skip to content

Tải ảnh lên ​

Tải một ảnh lên FaceAuthen và trả về một image_id. Đây là bước đầu tiên bắt buộc cho mọi service khác — mọi API downstream đều nhận một image_id thay vì dữ liệu ảnh thô.

Endpoint ​

http
POST /v1/images
Content-Type: multipart/form-data

Tham số:

Tham sốKiểuBắt buộcMặc địnhMô tả
filefileCó—File ảnh cần tải lên. JPG hoặc PNG, tối đa 15MB.
labelstringCó—Nhãn của ảnh. Phải là một trong các giá trị trong Khuyến nghị sử dụng.
metadatastring_jsonKhông{}Chuỗi JSON của các cặp key/value. Key là string; value là string, int, float hoặc bool. Ví dụ: {"id":"<ID>","type":1}

Trả về: UploadImageResponse

Dùng portrait cho một ảnh selfie chụp bằng camera và portrait_nfc cho một ảnh chân dung đọc từ chip NFC.

Ví dụ request ​

bash
curl -X POST \
  '<BASE_URL>/v1/images' \
  -H 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
  -H 'X-TV-Timestamp: <TIMESTAMP>' \
  -F 'file=@"images/portrait.jpg"' \
  -F 'label="portrait"'

Signature của thiết bị (request từ SDK) ​

Khi Mobile SDK tải ảnh lên bằng token giao dịch (Authorization: Bearer …), trên tenant đã bật kiểm tra signature của thiết bị, SDK còn gửi Device-Id, X-Device-Key-Id và X-Device-Signature, được ký trên body multipart thô đúng như khi gửi. Khóa ký (signing credential) mà X-Device-Key-Id chỉ tới phải ở trạng thái ACTIVE và được đăng ký cho cùng Device-Id; nếu không, request bị từ chối với access_denied_exception. Xem Ký request.

Response ​

json
{
  "data": {
    "image_id": "20b457d2-cf11-4c2b-a491-8137ae6b0bc8"
  },
  "errors": [],
  "success": true,
  "code": 0,
  "message": "Success"
}
TrườngKiểuMô tả
data.image_idstringUUID của ảnh đã tải lên trong StoreDB. Truyền giá trị này cho mọi API khác.
errorsarrayChi tiết từng lỗi. Rỗng khi thành công.
successboolCuộc gọi có thành công hay không.
codeintstatus code dạng số — 0 khi thành công.
messagestringThông báo trạng thái.

Khi thành công, HTTP status là 200. Chỉ riêng HTTP 200 là chưa đủ — hãy kiểm tra success và data.status trước khi coi việc tải lên đã hoàn tất.

Lỗi ​

Khi success là false, một trong các mã số sau sẽ được trả về:

MãThông báo
2001010Không tìm thấy Access ID.
2001014Vượt giới hạn tốc độ đăng ký.
2001015Vượt giới hạn brute-force khi đăng ký.
401100Bạn không được phép thực hiện hành động này.
4001000Tham số đầu vào vi phạm một ràng buộc.
4001001Header X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
4041001Không tìm thấy người dùng.
4091000cus_user_id đã được đăng ký.
4291000Số lượng request vượt quá giới hạn throughput của bạn.
5001000Xảy ra lỗi không mong đợi trong quá trình xử lý request.

Mảng errors mang một hoặc nhiều mã lỗi chi tiết:

MãMô tả
invalid_parameter_exceptionTham số đầu vào vi phạm một ràng buộc.
request_time_too_skewedHeader X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
access_denied_exceptionBạn không được phép thực hiện hành động này.
image_not_found_exceptionKhông tìm thấy image ID trong DB.
image_too_large_exceptionKích thước ảnh đầu vào vượt quá giới hạn cho phép (15MB).
invalid_image_format_exceptionĐịnh dạng ảnh được cung cấp không được hỗ trợ (JPG/PNG).
rate_limit_exceptionSố lượng request vượt quá giới hạn throughput của bạn.
internal_server_errorXảy ra lỗi không mong đợi trong quá trình xử lý request.

Bước tiếp theo ​

Developers