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.
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:
pdf
jpeg
jpg
png
Để 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 filefile_length
- kích thước file tính bằng bytefile_type
- Loại MIME của file. Các giá trị hợp lệ là application/pdf
, image/jpeg
, image/jpg
, image/png
và video/mp4
Đượ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ắ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
.
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>" }
{ "h": "2:c2FtcGxl..." }
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 đị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.