API การอัพโหลดแบบดำเนินการต่อได้ช่วยให้คุณสามารถอัพโหลดไฟล์ขนาดใหญ่ไปยังกราฟสังคมของ Meta และดำเนินเซสชั่นการอัพโหลดต่อจากที่ค้างไว้ได้โดยไม่ต้องเริ่มใหม่ทั้งหมด เมื่ออัพโหลดไฟล์แล้ว คุณสามารถเผยแพร่ไฟล์ได้
ข้อมูลอ้างอิงสำหรับตำแหน่งข้อมูลต่างๆ ที่รองรับแฮนเดิลไฟล์ที่อัพโหลดจะระบุว่าตำแหน่งข้อมูลรองรับแฮนเดิลที่ API การอัพโหลดแบบดำเนินการต่อได้ส่งคืนมาหรือไม่
คู่มือนี้จะถือว่าคุณได้อ่านคู่มือภาพรวม API กราฟและคู่มือการพัฒนา Meta และดำเนินการที่จำเป็นสำหรับการพัฒนากับ Meta มาแล้ว
คุณจำเป็นต้องมีสิ่งต่อไปนี้
pdf
jpeg
jpg
png
เพื่อเริ่มเซสชั่นการอัพโหลด ให้ส่งคำขอ POST
ไปยังตำแหน่งข้อมูล /<APP_ID>/uploads
ซึ่ง ID ของแอพ Meta ของคุณเป็น <APP_ID>
โดยระบุพารามิเตอร์ที่จำเป็นดังต่อไปนี้
file_name
- ชื่อไฟล์ของคุณfile_length
- ขนาดไฟล์ โดยมีหน่วยเป็นไบต์file_type
- ประเภท MIME ของไฟล์ ค่าที่ถูกต้อง ได้แก่ application/pdf
, image/jpeg
, image/jpg
, image/png
และ video/mp4
จัดรูปแบบเพื่อให้อ่านได้ง่าย
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>"
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับแบบ JSON ที่มี ID เซสชั่นการอัพโหลด
{ "id": "upload:<UPLOAD_SESSION_ID>" }
เริ่มอัพโหลดไฟล์โดยการส่งคำขอ POST
ไปยังตำแหน่งข้อมูล /upload:<UPLOAD_SESSION_ID>
โดยที่ตั้งค่า file_offset
ต่อไปนี้ให้เป็น 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>
คุณจะต้องใส่โทเค็นการเข้าถึงไว้ในส่วนหัว มิฉะนั้นจะเรียกใช้ไม่สำเร็จ
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับแฮนเดิลไฟล์ที่จะใช้สำหรับเรียกใช้ API เพื่อเผยแพร่ไฟล์ไปยังตำแหน่งข้อมูล
{ "h": "<UPLOADED_FILE_HANDLE>" }
{ "h": "2:c2FtcGxl..." }
หากคุณเริ่มเซสชั่นการอัพโหลดไปแล้วแต่ใช้เวลานานกว่าที่คาดไว้หรือเกิดการติดขัดขึ้น ให้ส่งคำขอ GET
ไปยังตำแหน่งข้อมูล /upload:<UPLOAD_SESSION_ID>
จากขั้นตอนที่ 1
จัดรูปแบบเพื่อให้อ่านได้ง่าย
curl -i -X GET "https://graph.facebook.com/v21.0
/upload:<UPLOAD_SESSION_ID>"
--header "Authorization: OAuth <USER_ACCESS_TOKEN>""
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับแบบ JSON พร้อมค่า file_offset
ซึ่งคุณสามารถนำมาใช้เพื่อดำเนินการอัพโหลดต่อจากจุดที่ติดขัดได้
{ "id": "upload:<UPLOAD_SESSION_ID>" "file_offset": <FILE_OFFSET>" }
ใช้ค่า file_offset
นี้เพื่อส่งคำขอ POST
อีกรายการหนึ่งเหมือนกับที่ส่งในขั้นตอนที่ 2 ซึ่งจะเป็นการดำเนินการอัพโหลดต่อจากจุดที่ติดขัด