Với API Video, bạn có thể đăng Video trên Trang và Nhóm. Không hỗ trợ đăng trên nút Người dùng.
Bạn cũng có thể đăng Thước phim trên Trang. Để biết thêm thông tin, hãy xem phần API Đăng thước phim.
Quy trình đăng Video bao gồm chọn giao thức tải lên và gửi yêu cầu POST
đến cạnh /videos
của Nhóm hoặc Trang được nhắm mục tiêu. API này hỗ trợ cả giao thức Tải lên nối tiếp và Tải lên không nối tiếp. Bạn nên sử dụng giao thức Tải lên nối tiếp vì giao thức này linh hoạt hơn và có thể xử lý nhanh nhạy tình trạng gián đoạn kết nối.
Lưu ý rằng mọi ví dụ trong tài liệu này đều dùng nút Trang. Tuy nhiên, nút Nhóm cũng áp dụng tương tự.
Đối với mọi hành động đăng, bạn cần có Mã truy cập và Quyền thích hợp tùy theo nút mà bạn đang nhắm mục tiêu. Trong khi thử nghiệm, bạn có thể dễ dàng tạo Mã truy cập và cấp Quyền cho ứng dụng của mình thông qua Trình khám phá API Đồ thị. Hãy tham khảo hướng dẫn Bắt đầu của chúng tôi để xem cách thực hiện việc này. Khi ứng dụng của bạn sẵn sàng phát hành chính thức, có khả năng bạn sẽ phải triển khai phương thức Đăng nhập bằng Facebook để lấy Mã truy cập và Quyền từ người dùng ứng dụng.
Người dùng ứng dụng phải là Quản trị viên của Trang mà bạn đang nhắm mục tiêu. Bạn cần có Mã truy cập Trang của người dùng ứng dụng, đồng thời họ phải cấp cho ứng dụng của bạn các quyền pages_show_list
, pages_read_engagement
và pages_manage_posts
.
Người dùng ứng dụng phải là Quản trị viên của Nhóm mà bạn đang nhắm mục tiêu. Bạn cần có Mã truy cập người dùng của người dùng ứng dụng, đồng thời họ phải cấp cho ứng dụng của bạn quyền publish_to_groups
.
Giao thức Tải lên nối tiếp là giao thức tải lên ưu tiên vì bạn có thể tách các video lớn thành những file cắt nhỏ hơn để tránh hết thời gian chờ. Điều này đặc biệt hữu ích đối với những video lớn mà nhiều khả năng bạn sẽ gặp lỗi kết nối. Nếu gặp lỗi kết nối khi tải video lớn lên, thông thường bạn sẽ phải tải lại toàn bộ video lên. Tuy nhiên, với giao thức Tải lên nối tiếp, bạn chỉ phải tải lên lại các file cắt bị ảnh hưởng; những file cắt đã tải lên thành công sẽ không cần phải tải lên lại.
Bạn có thể đăng video trên Trang hoặc Nhóm. Quy trình đăng bao gồm các bước sau:
Sau khi bạn kết thúc phiên tải lên, chúng tôi sẽ sắp xếp lại video, mã hóa rồi đăng video đó lên.
Video không được vượt quá 10GB và 4 giờ.
Để khởi tạo phiên tải video lên, hãy gửi yêu cầu POST
đến điểm cuối Video trên Trang:
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Thêm các thông số sau:
Tên thông số | Giá trị |
---|---|
|
|
| Mã truy cập Trang nếu bạn đăng trên Trang hoặc mã truy cập Người dùng nếu bạn đăng trên Nhóm. |
| Tổng kích thước của file video tính theo byte. |
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=start" \
-F "access_token=EAADI..." \
-F "file_size=22420886"
{ "video_id":"2918040888250909", //Capture this value (optional) "start_offset":"0", //Capture this value "end_offset":"1048576", "upload_session_id":"2918040901584241" //Capture this value }
Ghi lại các giá trị start_offset
và upload_session_id
do API trả về. Bạn sẽ dùng các giá trị này ở bước tiếp theo để tải file cắt đầu tiên của video lên. Bạn cũng nên ghi lại giá trị video_id
. Bạn không cần giá trị này khi đăng, nhưng đây sẽ là ID cuối cùng của video được đăng.
Tải từng file cắt của video lên theo thứ tự sắp xếp bằng cách gửi các yêu cầu POST
liên tiếp đến điểm cuối Video trên Trang:
POST /v19.0
/{page-id}/videos
?upload_phase=transfer
&access_token={access-token}
&upload_session_id={upload-session-id}
&start_offset={start-offset}
&video_file_chunk={video-file-chunk}
Thêm dữ liệu sau đây dưới dạng multipart/form-data
vào phần nội dung yêu cầu:
Tên dữ liệu mẫu | Giá trị |
---|---|
|
|
| Mã truy cập Trang nếu bạn đăng trên Trang hoặc mã truy cập Người dùng nếu bạn đăng trên Nhóm. |
| ID phiên tải lên của bạn. |
| Giá trị |
| Tên file cắt của video sẽ tải lên. |
Mỗi lần bạn tải file cắt lên thành công, giá trị start_offset
mới sẽ được trả về. Hãy lặp lại yêu cầu này bằng cách sử dụng giá trị start_offset
mới trả về và tên file cắt tiếp theo của video sẽ tải lên (được chỉ định cho video_file_chunk
), sau đó lần lượt thực hiện bước này cho tất cả file cắt còn lại của video.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=0" \
-F "video_file_chunk=@/Users/...xaa"
{ "start_offset":"10485760", //Value for second chunk "end_offset":"15728640" }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=10485760" \
-F "video_file_chunk=@/Users/...xab"
{ "start_offset":"20971520", //Value for third chunk "end_offset":"22420886" }
Sau khi bạn tải file cắt cuối cùng lên, API này sẽ phản hồi kèm theo các giá trị start_offset
và end_offset
phù hợp, cho biết rằng bạn có thể kết thúc phiên tải lên.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Khi bạn kết thúc phiên tải lên, chúng tôi sẽ sắp xếp lại video hoàn chỉnh, mã hóa rồi đăng video đó trên Trang. Để kết thúc phiên tải lên, hãy gửi một yêu cầu POST
cuối cùng đến điểm cuối Video trên Trang:
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Thêm các thông số sau:
Tên thông số | Giá trị |
---|---|
|
|
| Mã truy cập Trang nếu bạn đăng trên Trang hoặc mã truy cập Người dùng nếu bạn đăng trên Nhóm. |
| ID phiên tải lên của bạn. |
Bạn cũng có thể thêm bất kỳ thông số bổ sung nào mà điểm cuối Video trên Trang hỗ trợ, chẳng hạn như title
, description
và thumb
.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
{ "success":true }
Khi bạn nhận được phản hồi này, tức là chúng tôi đã bắt đầu sắp xếp và mã hóa video hoàn chỉnh. Trong vòng vài phút là bạn có thể nhìn thấy video đã đăng.
Bạn nên tải file lên bằng giao thức Tải lên nối tiếp vì giao thức này xử lý tình trạng gián đoạn kết nối một cách hiệu quả hơn và hỗ trợ các file lớn hơn. Tuy nhiên, nếu thích tải file lên bằng giao thức Tải lên không nối tiếp, bạn có thể làm vậy bằng cách gửi yêu cầu POST
đến cạnh Video trên Trang và thêm thông số source
(đối với file video trên máy) hoặc thông số file_url
(đối với file lưu trữ trên máy chủ công khai) vào phần nội dung yêu cầu dưới dạng multipart/form-data
. Bạn cũng có thể thêm bất kỳ thông số bổ sung nào mà điểm cuối Video trên Trang hỗ trợ, chẳng hạn như title
, description
và thumb
.
Video không được vượt quá 1GB và 20 phút. Nếu file video lớn hơn, hãy tách thành các file cắt và đăng bằng giao thức Tải lên nối tiếp.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "file_url=https://socialsizz.../incredible.mov"
Khi thành công, API này sẽ phản hồi kèm theo ID của Video đã đăng.
{ "id":"287788272232962" //ID of the published Video }
Chúng tôi sẽ tự động tạo hình thu nhỏ bằng các ảnh cắt từ video đã đăng. Các hình thu nhỏ đã tạo có thể được chỉnh sửa để cải thiện độ sáng, màu sắc và độ tương phản. Bạn có thể cung cấp hình thu nhỏ của chính mình bằng cách thêm trường thumb
thông qua giao thức Tải lên nối tiếp hoặc Tải lên không nối tiếp. Nếu sử dụng giao thức Tải lên nối tiếp, hãy thêm trường thumb
trong Bước 3: Kết thúc phiên tải lên. Bạn sẽ không thay đổi được hình thu nhỏ mà mình cung cấp.
Định dạng: BMP, GIF, JPEG, PNG,TIFF
Kích thước file: 10MB trở xuống.
Không có yêu cầu về kích thước hình ảnh nhưng hình ảnh nên có cùng tỷ lệ khung hình với video.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
-F "thumb=@/Users/...thumbnail_image.png"
{ "success":true }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
-F "thumb=@/Users/...thumbnail_image.png"
{ "id":"287788272232962" }