Tải file lên

Với API Tải lên nối tiếp, bạn có thể tải các file lớn lên đồ thị mạng xã hội của Meta 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ể đăng file.

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.

Trước khi bạn bắt đầu

Hướng dẫn này giả định rằng bạn đã đọc phần Tổng quan về API Đồ thị và hướng dẫn Phát triển trên Meta, cũng như thực hiện các hành động cần thiết để phát triển trên Meta.

Bạn sẽ cần:

  • ID ứng dụng trên Meta
  • Một file ở một trong các định dạng sau:
    • pdf
    • jpeg
    • jpg
    • png
  • Một mã truy cập dành cho Người dùng

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

Để bắt đầu phiên tải lên, hãy gửi yêu cầu POST đến điểm cuối /<APP_ID>/uploads, trong đó <APP_ID> là Meta ID của ứng dụng kèm theo các thông số bắt buộc sau đây:

  • file_name - tên file
  • 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

Cú pháp yêu cầu

Được định dạng để dễ đọc.

curl -i -X POST "https://graph.facebook.com/v21.0/<APP_ID>/uploads
  ?file_name=<FILE_NAME>
  &file_length=<FILE_LENGTH>
  &file_type=<FILE_TYPE>
  &access_token=<USER_ACCESS_TOKEN>"

Sau khi thành công, ứng dụng của bạn sẽ nhận được phản hồi JSON chứa ID phiên tải lên.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
}

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

Bắt đầu tải file lên bằng cách gửi yêu cầu POST đến điểm cuối /upload:<UPLOAD_SESSION_ID> với file_offset dưới đây được đặt thành 0.

Cú pháp yêu cầu

curl -i -X POST "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>"
  --header "file_offset: 0"
  --data-binary @<FILE_NAME>

Bạn phải thêm mã truy cập vào tiêu đề. Nếu không, lệnh gọi sẽ không thành công.

Khi thành công, ứng dụng sẽ nhận được tên người dùng file để bạn sử dụng trong lệnh gọi API nhằm đăng file lên điểm cuối của mình.

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

Phản hồi mẫu

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

Tiếp tục phiên tải lên bị gián đoạn

Nếu bạn đã bắt đầu một 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 điểm cuối /upload:<UPLOAD_SESSION_ID> từ Bước 1.

Cú pháp yêu cầu

Được định dạng để dễ đọc.

curl -i -X GET "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>""

Sau khi thành công, ứng dụng của bạn sẽ nhận được phản hồi JSON chứa 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.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
  "file_offset": <FILE_OFFSET>"
}

Sử dụng giá trị file_offset này để gửi yêu cầu POST khác như bạn đã thực hiện trong Bước 2. Thao tác này sẽ tiếp tục quy trình tải lên từ điểm gián đoạn.

Bước tiếp theo