تحميل ملف

تسمح لك API التحميل القابل للاستئناف بتحميل ملفات كبيرة في مخطط التواصل الاجتماعي لدى Meta واستئناف جلسات التحميل التي تمت مقاطعتها من دون الحاجة إلى البدء من جديد. بمجرد تحميل الملف، يمكنك نشره.

ستشير مراجع نقاط النهاية التي تدعم مؤشرات الملفات التي تم تحميلها إلى ما إذا كانت نقاط النهاية تدعم المؤشرات التي يتم إرجاعها بواسطة API التحميل القابل للاستئناف.

قبل البدء

يفترض هذا الدليل أنك قرأت الدليلين نظرة عامة حول Graph API وتطوير Meta وقمت بتنفيذ الإجراءات الضرورية المطلوبة للتطوير من خلال 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 آخر كما فعلت في الخطوة الثانية. سيؤدي هذا إلى استئناف عملية التحميل من نقطة التوقف.

الخطوات التالية