API การอัพโหลดแบบดำเนินการต่อได้ช่วยให้คุณสามารถอัพโหลดไฟล์ขนาดใหญ่ไปยังกราฟสังคมของ Meta และดำเนินเซสชั่นการอัพโหลดต่อจากที่ค้างไว้ได้โดยไม่ต้องเริ่มใหม่ทั้งหมด เมื่ออัพโหลดไฟล์แล้ว คุณสามารถเผยแพร่ไฟล์ได้
ข้อมูลอ้างอิงสำหรับตำแหน่งข้อมูลต่างๆ ที่รองรับแฮนเดิลไฟล์ที่อัพโหลดจะระบุว่าตำแหน่งข้อมูลรองรับแฮนเดิลที่ API การอัพโหลดแบบดำเนินการต่อได้ส่งคืนมาหรือไม่
คู่มือนี้จะถือว่าคุณได้อ่านคู่มือภาพรวม API กราฟและคู่มือการพัฒนา Meta และดำเนินการที่จำเป็นสำหรับการพัฒนากับ Meta มาแล้ว
คุณจะต้องดำเนินการดังต่อไปนี้
pdfjpegjpgpngmp4เพื่อเริ่มเซสชั่นการอัพโหลด ให้ส่งคำขอ 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/v24.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/v24.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/v24.0/upload:<UPLOAD_SESSION_ID>" --header "Authorization: OAuth <USER_ACCESS_TOKEN>"เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับแบบ JSON พร้อมค่า file_offset ซึ่งคุณสามารถนำมาใช้เพื่อดำเนินการอัพโหลดต่อจากจุดที่ติดขัดได้
{
"id": "upload:<UPLOAD_SESSION_ID>"
"file_offset": "<FILE_OFFSET>"
}ส่งคำขอ POST อีกคำขอ เหมือนกับที่คุณส่งในขั้นตอนที่ 2 พร้อมตั้งค่า file_offset เป็นค่า file_offset นี้ที่คุณเพิ่งได้รับ ซึ่งจะเป็นการดำเนินการอัพโหลดต่อจากจุดที่ติดขัด
curl -i -X POST "https://graph.facebook.com/v24.0/upload:<UPLOAD_SESSION_ID>" --header "Authorization: OAuth <USER_ACCESS_TOKEN>" --header "file_offset: <FILE_OFFSET>" --data-binary @<FILE_NAME>