API วิดีโอช่วยให้คุณสามารถเผยแพร่วิดีโอบนเพจและในกลุ่มได้ แต่ยังไม่รองรับการเผยแพร่บนผู้ใช้
คุณสามารถเผยแพร่คลิป Reels บนเพจได้ด้วย โปรดดูข้อมูลเพิ่มเติมที่ API การเผยแพร่คลิป Reels
ขั้นตอนการเผยแพร่วิดีโอจะเกี่ยวข้องกับการเลือกโปรโตคอลการอัพโหลดและการส่งคำขอ POST
ไปยังจุดเชื่อมโยง /videos
ของเพจหรือกลุ่มเป้าหมาย API รองรับโปรโตคอลการอัพโหลดทั้งแบบดำเนินการต่อได้ และดำเนินการต่อไม่ได้ เราขอแนะนำให้ใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้ เนื่องจากมีความอเนกประสงค์มากกว่าและสามารถจัดการกับการหยุดชะงักของการเชื่อมต่อได้อย่างราบรื่น
โปรดทราบว่าตัวอย่างทั้งหมดในเอกสารนี้ใช้โหนดเพจ แต่ก็สามารถใช้กับโหนดกลุ่มได้เช่นกัน
การดำเนินการเผยแพร่ทุกครั้งต้องใช้โทเค็นการเข้าถึงและสิทธิ์การอนุญาตที่เหมาะสมโดยขึ้นอยู่กับโหนดที่คุณกำลังกำหนดเป้าหมาย ในขณะที่กำลังทดสอบ คุณสามารถสร้างโทเค็นและให้สิทธิ์การอนุญาตแก่แอพของคุณได้ง่ายๆ โดยใช้ Graph API Explorer โปรดดูวิธีการได้ที่คู่มือการเริ่มต้นใช้งานของเรา เมื่อแอพของคุณพร้อมสำหรับการใช้งานจริงแล้ว คุณอาจต้องใช้การเข้าสู่ระบบด้วย Facebook เพื่อขอรับโทเค็นและสิทธิ์การอนุญาตจากผู้ใช้แอพของคุณ
ผู้ใช้แอพต้องเป็นผู้ดูแลของเพจที่คุณกำลังกำหนดเป้าหมาย คุณต้องมีโทเค็นการเข้าถึงเพจของผู้ใช้แอพ และผู้ใช้แอพจะต้องให้สิทธิ์ pages_show_list
, pages_read_engagement
และ pages_manage_posts
แก่แอพของคุณ
ผู้ใช้แอพต้องเป็นผู้ดูแลของกลุ่มที่คุณกำลังกำหนดเป้าหมาย คุณต้องมีโทเค็นการเข้าถึงผู้ใช้ของผู้ใช้แอพ และผู้ใช้แอพจะต้องให้สิทธิ์ publish_to_groups
แก่แอพของคุณ
โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้เป็นโปรโตคอลการเผยแพร่ที่นิยมใช้ เนื่องจากคุณสามารถแบ่งวิดีโอขนาดใหญ่ออกเป็นส่วนเล็กๆ เพื่อหลีกเลี่ยงการหมดเวลาได้ ซึ่งจะมีประโยชน์อย่างยิ่งสำหรับวิดีโอขนาดใหญ่ที่คุณมักจะพบกับข้อผิดพลาดในการเชื่อมต่อ หากคุณพบกับข้อผิดพลาดในการเชื่อมต่อขณะอัพโหลดวิดีโอขนาดใหญ่ โดยปกติแล้วคุณจะต้องอัพโหลดวิดีโอทั้งหมดอีกครั้ง แต่ถ้าใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้ คุณเพียงแค่ต้องอัพโหลดส่วนที่ได้รับผลกระทบอีกครั้งเท่านั้น โดยไม่จำเป็นต้องอัพโหลดส่วนที่อัพโหลดไปแล้วซ้ำอีก
คุณสามารถเผยแพร่วิดีโอได้บนเพจหรือในกลุ่ม การเผยแพร่มีขั้นตอนดังต่อไปนี้
เมื่อสิ้นสุดเซสชั่นการอัพโหลดแล้ว เราจะประกอบวิดีโอเข้าด้วยกันอีกครั้ง ทำการเข้ารหัส และเผยแพร่
วิดีโอจะจำกัดขนาดไว้ไม่เกิน 10 GB และมีความยาวไม่เกิน 4 ชั่วโมง
หากต้องการเริ่มเซสชั่นการอัพโหลดวิดีโอ ให้ส่งคำขอ POST
ไปยังตำแหน่งข้อมูลวิดีโอบนเพจ:
POST /v20.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
ประกอบด้วยพารามิเตอร์ต่อไปนี้
ชื่อพารามิเตอร์ | ค่า |
---|---|
|
|
| โทเค็นการเข้าถึงเพจของคุณหากเผยแพร่บนเพจ หรือโทเค็นการเข้าถึงผู้ใช้ของคุณหากเผยแพร่ในกลุ่ม |
| ขนาดโดยรวมของไฟล์วิดีโอโดยหน่วยเป็นไบต์ |
curl -X POST \
"https://graph-video.facebook.com/v20.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 }
จดค่า start_offset
และ upload_session_id
ที่ API ส่งกลับมา ซึ่งคุณจะใช้ในขั้นตอนถัดไปเพื่ออัพโหลดวิดีโอส่วนแรก คุณอาจจะจดค่า video_id
ไว้ด้วยก็ได้ คุณไม่จำเป็นต้องใช้ค่านี้สำหรับการเผยแพร่ แต่ค่านี้จะเป็น ID ของวิดีโอที่เผยแพร่ในท้ายที่สุด
อัพโหลดวิดีโอของคุณทีละส่วนตามลำดับที่ควรประกอบเข้าด้วยกันโดยส่งคำขอ POST
อย่างต่อเนื่องไปยังตำแหน่งข้อมูลวิดีโอบนเพจ
POST /v20.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}
ให้ใส่ข้อมูลต่อไปนี้โดยเป็น multipart/form-data
ไว้ในเนื้อหาของคำขอด้วย
ชื่อ "ข้อมูลจาก" | ค่า |
---|---|
|
|
| โทเค็นการเข้าถึงเพจของคุณหากเผยแพร่บนเพจ หรือโทเค็นการเข้าถึงผู้ใช้ของคุณหากเผยแพร่ในกลุ่ม |
| ID เซสชั่นการอัพโหลดของคุณ |
| ค่า |
| ชื่อของส่วนวิดีโอที่จะอัพโหลด |
ทุกครั้งที่คุณอัพโหลดแต่ละส่วนสำเร็จ ระบบจะส่งคืนค่า start_offset
ใหม่กลับมา ส่งคำขอนี้ซ้ำโดยใช้ค่า start_offset
ที่เพิ่งส่งคืนมาและชื่อของวิดีโอส่วนถัดไปที่จะอัพโหลด (กำหนดให้กับ video_file_chunk
) แล้วค่อยดำเนินวิธีเดียวกันนี้กับวิดีโอทั้งหมดที่เหลือ
curl -X POST \
"https://graph-video.facebook.com/v20.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/v20.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" }
เมื่ออัพโหลดส่วนสุดท้ายแล้ว API ควรตอบกลับด้วยค่า start_offset
และ end_offset
ที่ตรงกัน ซึ่งบ่งบอกว่าสามารถสิ้นสุดเซสชั่นการอัพโหลดได้แล้ว
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
เมื่อสิ้นสุดเซสชั่นการอัพโหลดแล้ว เราจะประกอบวิดีโอเข้าด้วยกันอีกครั้งให้สมบูรณ์ ทำการเข้ารหัส และเผยแพร่บนเพจ หากต้องการสิ้นสุดเซสชั่นการอัพโหลดวิดีโอ ให้ส่งคำขอ POST
ครั้งสุดท้ายไปยังตำแหน่งข้อมูลวิดีโอบนเพจ:
POST /v20.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
ประกอบด้วยพารามิเตอร์ต่อไปนี้
ชื่อพารามิเตอร์ | ค่า |
---|---|
|
|
| โทเค็นการเข้าถึงเพจของคุณหากเผยแพร่บนเพจ หรือโทเค็นการเข้าถึงผู้ใช้ของคุณหากเผยแพร่ในกลุ่ม |
| ID เซสชั่นการอัพโหลดของคุณ |
คุณยังสามารถใส่พารามิเตอร์เพิ่มเติมที่ตำแหน่งข้อมูลวิดีโอบนเพจรองรับได้ด้วย เช่น title
, description
และ thumb
curl -X POST \
"https://graph-video.facebook.com/v20.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
{ "success":true }
เมื่อคุณได้รับการตอบกลับนี้ แสดงว่าเราเริ่มประกอบวิดีโอเข้าด้วยกันและเข้ารหัสวิดีโอที่เสร็จสมบูรณ์แล้ว คุณน่าจะเห็นวิดีโอที่เผยแพร่แล้วภายในไม่กี่นาที
เราขอแนะนำให้คุณอัพโหลดไฟล์โดยใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้ เนื่องจากโปรโตคอลนี้จะจัดการกับการหยุดชะงักในการเชื่อมต่อได้อย่างมีประสิทธิภาพมากกว่าและรองรับไฟล์ขนาดใหญ่กว่า อย่างไรก็ตาม หากคุณต้องการอัพโหลดไฟล์โดยใช้โปรโตคอลการอัพโหลดที่ดำเนินการต่อไม่ได้ คุณสามารถทำได้โดยส่งคำขอ POST
ไปยังจุดเชื่อมโยงวิดีโอบนเพจ และใส่พารามิเตอร์ source
(สำหรับไฟล์วิดีโอในเครื่อง) หรือพารามิเตอร์ file_url
(สำหรับไฟล์ที่โฮสต์บนเซิร์ฟเวอร์สาธารณะ) ในเนื้อหาคำขอของคุณโดยเป็น multipart/form-data
คุณยังสามารถใส่พารามิเตอร์เพิ่มเติมที่ตำแหน่งข้อมูลวิดีโอบนเพจรองรับได้ด้วย เช่น title
, description
และ thumb
วิดีโอจะจำกัดขนาดไว้ไม่เกิน 1 GB และมีความยาวไม่เกิน 20 นาที หากไฟล์วิดีโอของคุณมีขนาดใหญ่กว่านั้น ให้แบ่งออกเป็นส่วนๆ และเผยแพร่โดยใช้โปรโตคอลการอัพโหลดแบบดำเนินการต่อได้แทน
curl -X POST \
"https://graph-video.facebook.com/v20.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
curl -X POST \
"https://graph-video.facebook.com/v20.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "file_url=https://socialsizz.../incredible.mov"
เมื่อสำเร็จ API จะตอบกลับด้วย ID ของวิดีโอที่เผยแพร่แล้ว
{ "id":"287788272232962" //ID of the published Video }
เราจะสร้างภาพขนาดย่อโดยอัตโนมัติโดยใช้ภาพนิ่งจากวิดีโอที่เผยแพร่ ภาพขนาดย่อที่สร้างขึ้นอาจได้รับการปรับแต่งเพื่อเพิ่มความสว่าง สี และคอนทราสต์ คุณสามารถระบุภาพขนาดย่อของคุณเองได้โดยใส่ช่อง thumb
พร้อมด้วยโปรโตคอลแบบดำเนินการต่อได้หรือดำเนินการต่อไม่ได้ หากใช้โปรโตคอลแบบดำเนินการต่อได้ ให้ใส่ช่อง thumb
ในระหว่างขั้นตอนที่ 3 : สิ้นสุดเซสชั่นการอัพโหลด ภาพขนาดย่อที่คุณระบุจะไม่ถูกแก้ไข
รูปแบบ: BMP, GIF, JPEG, PNG,TIFF
ขนาดไฟล์: ไม่เกิน 10 MB
ไม่มีข้อกำหนดสำหรับขนาดรูปภาพ แต่ควรมีอัตราส่วนกว้างยาวเดียวกับวิดีโอของคุณ
curl -X POST \
"https://graph-video.facebook.com/v20.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/v20.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
-F "thumb=@/Users/...thumbnail_image.png"
{ "id":"287788272232962" }