تسمح لك API التحميل القابل للاستئناف بتحميل ملفات كبيرة في مخطط التواصل الاجتماعي لدى Meta واستئناف جلسات التحميل التي تمت مقاطعتها من دون الحاجة إلى البدء من جديد. بمجرد تحميل الملف، يمكنك نشره.
ستشير مراجع نقاط النهاية التي تدعم مؤشرات الملفات التي تم تحميلها إلى ما إذا كانت نقاط النهاية تدعم المؤشرات التي يتم إرجاعها بواسطة API التحميل القابل للاستئناف.
يفترض هذا الدليل أنك قرأت الدليلين نظرة عامة حول Graph API وتطوير Meta وقمت بتنفيذ الإجراءات الضرورية المطلوبة للتطوير من خلال Meta.
ستحتاج إلى ما يلي:
pdf
jpeg
jpg
png
لبدء جلسة تحميل، أرسل طلب POST
إلى نقطة النهاية /<APP_ID>/uploads
حيث يكون <APP_ID>
هو معرف تطبيق Meta، مع تضمين المعلمات الضرورية التالية:
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": "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>
من الخطوة الأولى.
تم التنسيق لإمكانية القراءة.
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
آخر كما فعلت في الخطوة الثانية. سيؤدي هذا إلى استئناف عملية التحميل من نقطة التوقف.