API Tải lên nối tiếp

Với API Tải lên nối tiếp, bạn có thể tải các file lớn lên API Đồ thị và tiếp tục phiên tải lên bị gián đoạn mà không cần bắt đầu lại. Sau khi tải lên, bạn có thể sử dụng tên người dùng của file tải lên với các điểm cuối API Đồ thị khác hỗ trợ chúng.

Lưu ý rằng API Tải lên nối tiếp không phải là cách duy nhất để tải file lên. Nhiều nút có cạnh hỗ trợ tải lên. Tuy nhiên, hầu hết các nút không có cách để xử lý file lớn hoặc cách để tiếp tục phiên tải lên bị gián đoạn.

Tài liệu tham khảo về các điểm cuối hỗ trợ tên người dùng của file tải lên sẽ cho biết điểm cuối đó có hỗ trợ tên người dùng do API Tải lên nối tiếp trả về hay không.

Các bước tải lên

Quy trình tải file lên gồm 2 bước:

  1. Sử dụng điểm cuối Tải lên từ ứng dụng để mô tả file của bạn và tạo phiên tải lên.
  2. Sử dụng ID phiên tải lên được trả về để bắt đầu quy trình tải lên.

Nếu thành công, hệ thống sẽ trả về tên người dùng của file. Bạn có thể sử dụng tên người dùng này với các điểm cuối khác hỗ trợ tên người dùng của file do API Tải lên nối tiếp trả về.

Bước 1: Tạo phiên

Gửi yêu cầu POST mô tả file của bạn đến điểm cuối Tải lên từ ứng dụng ({app-id}/uploads). Sau khi thành công, hệ thống sẽ trả về ID phiên tải lên. Bạn có thể dùng ID này trong bước tiếp theo để bắt đầu tải lên.

Cú pháp yêu cầu

POST https://graph.facebook.com/{api-version}/{app-id}/uploads
  &file_length={file-length}
  &file_type={file-type}
  &access_token={access-token}

Phần giữ chỗ thông số:

  • {api-version} - Phiên bản API Đồ thị.
  • {app-id} - ID ứng dụng. File tải lên sẽ được liên kết với ứng dụng này. Người dùng ứng dụng phải có vai trò quản trị viên hoặc nhà phát triển trên ứng dụng này.
  • file-length - Kích thước file tính bằng byte.
  • file-type - Loại MIME của file. Các giá trị hợp lệ là: application/pdf, image/jpeg, image/jpg, image/pngvideo/mp4
  • {access-token} - Mã truy cập dành cho người dùng của người dùng ứng dụng.

Xem tài liệu tham khảo về điểm cuối Tải lên từ ứng dụng để biết danh sách đầy đủ các thông số truy vấn có sẵn và loại file được hỗ trợ.

Phản hồi

{
  "id": "{id}"
}

Giá trị thuộc tính phản hồi:

  • {id} - ID phiên tải lên.

Yêu cầu mẫu

curl -X POST \
 "https://graph.facebook.com/v19.0/584544743160774/uploads?file_length=109981&file_type=image/png&access_token=EAAIT..."

Phản hồi mẫu

{
    "id": "upload:MTphd..."
}

Bước 2: Bắt đầu tải lên

Bắt đầu phiên tải lên bằng cách gửi yêu cầu POST đến địa chỉ máy chủ API Đồ thị và thêm {id} phiên tải lên của bạn cùng với các tiêu đề bắt buộc được nêu bên dưới. Sau khi thành công, hệ thống sẽ trả về tên người dùng của file - {h}. Bạn có thể sử dụng tên người dùng này với bất kỳ điểm cuối API Đồ thị nào hỗ trợ tên người dùng của file do API Tải lên nối tiếp trả về.

Nếu phiên tải lên kéo dài hơn dự kiến hoặc bị gián đoạn, hãy làm theo các bước được mô tả trong phần Gián đoạn.

Cú pháp yêu cầu

POST https://graph.facebook.com/{api-version}/{upload-session-id}
  --header 'Authorization: OAuth {access-token}' 
  --header 'file_offset: 0'
  --data-binary @{file-name}

Giá trị phần giữ chỗ

  • {api-version} - Phiên bản API Đồ thị.
  • {upload-session-id} - ID phiên tải lên được trả về trong bước 1.
  • {access-token} - Mã truy cập dành cho người dùng của người dùng ứng dụng. Người dùng ứng dụng phải có vai trò trên ứng dụng đã được nhắm đến ở bước 1.
  • {file-name} - Tên file sẽ tải lên.

Bạn phải thêm mã truy cập vào tiêu đề. Nếu không, yêu cầu của bạn sẽ không thành công.

Phản hồi

{
  "h": "{h}"
}

Giá trị thuộc tính phản hồi:

  • {h} - Tên người dùng của file tải lên

Yêu cầu mẫu

curl -X POST \
 "https://graph.facebook.com/v19.0/upload:MTphd..." \
 --header "Authorization: OAuth EAAIT..." \
 --header "file_offset: 0" \
 --data-binary @cats_are_jerks.png

Phản hồi mẫu

{
    "h": "2:c2FtcGxl..."
}

Gián đoạn

Nếu bạn đã bắt đầu phiên tải lên nhưng phiên kéo dài hơn dự kiến hoặc bị gián đoạn, hãy gửi yêu cầu GET đến địa chỉ máy chủ API Đồ thị và thêm ID phiên tải lên của bạn. API sẽ trả về giá trị file_offset. Bạn có thể dùng giá trị này để tiếp tục quy trình tải lên từ điểm gián đoạn.

Cú pháp yêu cầu

GET https://graph.facebook.com/{api-version}/{upload-session-id}
  ?access_token={access-token}

Giá trị phần giữ chỗ:

  • {api-version} - Phiên bản API Đồ thị.
  • {upload-session-id} - ID phiên tải lên được trả về trong Bước 1: Tạo phiên.
  • {access-token} - Mã truy cập dành cho người dùng của người dùng ứng dụng.

Phản hồi

{
  "id": "{id}",
  "file_offset": {file-offset}
}

Giá trị thuộc tính phản hồi:

  • {id} - ID phiên tải lên được truy vấn.
  • {file-offset} - Số nguyên cho biết số byte dữ liệu được tải lên thành công.

Ghi lại giá trị file_offset và lặp lại Bước 2: Bắt đầu tải lên, chỉ định giá trị cho tiêu đề file_offset tương ứng. Thao tác này sẽ tiếp tục quy trình tải lên từ điểm gián đoạn.

Yêu cầu mẫu

curl -X GET \
 "https://graph.facebook.com/v19.0/upload:MTphd...&access_token=EAAIT..." \

Phản hồi mẫu

{
  "id": "upload:MTphd",
  "file_offset": 5238
}