بدء الاستخدام

يستعرض هذا العرض التوضيحي كيفية استخدام API الفيديو لإنشاء فيديو في صفحة. يفترض هذا الدليل أنك تعرف كيفية تنفيذ طلبات cURL الأساسية باستخدام أداة سطر أوامر مثل Terminal، أو تطبيق مثل Postman، وأنك على دراية بأساسيات بمستكشف Graph API.

قبل البدء

ستحتاج إلى ما يلي:

  • تطبيق فيسبوك متوفر حاليًا. إذا لم يكن متوفرًا، فانتقل إلى فيسبوك للمطوّرين وانقر على تطبيقاتي، ثم أنشئ تطبيقًا.
  • فيديو بحجم 10–20 ميجابايت قمت بتقسيمه إلى أجزاء بحجم 5 ميجابايت، مع وضع كل الأجزاء في دليل منفرد.
  • صفحة يمكنك تنفيذ مهامCREATE_CONTENT فيها.
  • إمكانية الوصول إلى أداة سطر أوامر (مثل Terminal) أو تطبيق (مثل Postman) يمكنه تنفيذ طلبات cURL.

الخطوة الأولى: الحصول على رمز وصول المستخدم

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

  1. قم بتحميل مستكشف Graph API، ومن القائمة المنسدلة تطبيق فيسبوك، حدد تطبيقك.

  2. في القائمة المنسدلة المستخدم أو الصفحة، حدد الحصول على رمز وصول المستخدم، ثم تابع بنفسك وأكمل المصادقة. إذا كنت تعيد استخدام تطبيق أقدم، فربما تكون قد تمت مصادقتك بالفعل.

  3. في قسم الأذونات، استخدم حقل البحث إضافة إذن للبحث عن الأذونات التالية وتحديدها: pages_manage_engagement وpages_read_user_content.
  4. انقر على إنشاء رمز وصول.
  5. في النافذة المشروطة التي تظهر، تابع بنفسك واختر الصفحة التي تريد في النهاية تحميل الفيديو عليها.
  6. انقر على زر التالي في بقية الشاشات حتى يتم إلغاء النافذة المشروطة. يمنح ذلك تطبيقك الأذونات التي حددتها وينشئ أيضًا رمز وصول المستخدم.
  7. اختياري. انقر على أيقونة المعلومات المحددة باللون الأزرق للتأكد من أنك قد منحت تطبيقك الأذونات الصحيحة (النطاقات).

الخطوة الثانية: الحصول على معرف الصفحة والرمز

  1. باستخدام مستكشف Graph API، أرسل طلبًا إلى عنصر الربط GET /me/accounts. يستعلم هذا الطلب عن المستخدم ويقوم بإرجاع أي صفحات قد صرّحت لتطبيقك بالوصول إليها في الخطوة الأخيرة.
  2. حدد صفحتك ضمن الاستجابة وانسخ معرف الصفحة (id) ورمز وصول الصفحة (access_token).
  3. {
      "data": [
        {
          "access_token": "EBACf...",  //Copy your Page Access Token
          "category": "Media",
          "category_list": [
            {
              "id": "163003840417682",
              "name": "Media"
            }
          ],
          "name": "Metricsaurus",
          "id": "1755847768034402",  //Copy your Page ID
          "tasks": [
            "ANALYZE",
            "ADVERTISE",
            "MODERATE",
            "CREATE_CONTENT",
            "MANAGE"
          ]
        }
      ],
      "paging": {
        "cursors": {
          "before": "MTc1NTg0Nzc2ODAzNDQwMgZDZD",
          "after": "MTc1NTg0Nzc2ODAzNDQwMgZDZD"
        }
      }
    }
    

الخطوة الثالثة: إنشاء جلسة فيديو

  1. في أداة سطر الأوامر لديك، انتقل إلى المجلد الذي يحتوي على أجزاء الفيديو، ثم أرسل طلب cURL إلى عنصر الربط POST /page-id/videos بالمضيف graph-video.facebook.com. إذا كنت تستخدم تطبيق Postman، فيمكنك تضمين مفاتيح وقيم معلمة الاستعلام في النص الأساسي للطلب في صورة بيانات نموذج.

  2. عينة من الطلب
    curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=start" \
      -F "file_size=77188035"
    
  3. استبدل معرف الصفحة (1755847768034402) الموجود في مسار الطلب بمعرف صفحتك، وقم بتعيين access_token على رمز وصول الصفحة الذي نسخته للتو وقم بتعيين file_size على إجمالي حجم ملف الفيديو بوحدات البايت.

  4. تقوم API بإرجاع جلسة فيديو:
    {
      "video_id": "225467151853466",
      "start_offset": "0",
      "end_offset": "1048576",
      "upload_session_id": "225467155186799"
    }
    
  5. انسخ جميع القيم التي تم إرجاعها باستثناء end_offset.

الخطوة الرابعة: تحميل الجزء الأول من الفيديو

أرسل طلبًا آخر إلى عنصر الربط POST /{page-id}/videos واحرص على تضمين المعرف upload_session_id لديك واسم الجزء الأول من الفيديو.

عينة من الطلب

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos" \
  -F "access_token=EBACf..." \
  -F "upload_phase=transfer" \
  -F "start_offset=0" \
  -F "upload_session_id=225467155186799" \
  -F "video_file_chunk=@xaa"

إذا كنت تستخدم طلب cURL، فاحرص على تضمين الرمز @ قبل اسم الملف.

إذا كنت تستخدم تطبيق Postman، فاحذف الرمز @ وقم بتعيين video_file_chunk على الملف (مرِّر مؤشر الماوس فوق الصف لتنشيط القائمة المنسدلة) وحدد ملف الجزء الأول يدويًا.

ستستجيب API من خلال قيمة start_offset جديدة. لذا احتفظ بالقيمة الجديدة.

{
  "start_offset": "10485760",
  "end_offset": "15728640"
}

الخطوة الخامسة: تحميل أجزاء الفيديو المتبقية

  1. يمكنك تنفيذ الطلب نفسه، ولكن احرص على تعيين start_offset على قيمة start_offset الجديدة التي تم إرجاعها في الاستجابة السابقة وتعيين video_file_chunk على اسم جزء الفيديو التالي في التسلسل.
  2. curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=transfer" \
      -F "start_offset=10485760" \
      -F "upload_session_id=225467155186799" \
      -F "video_file_chunk=@xab"
    
    ستستجيب API مرة أخرى بقيمة start_offset جديدة والتي يمكنك استخدامها لتحميل الجزء التالي في التسلسل.
    {
      "start_offset":"15728640",
      "end_offset":"20971520"
    }
    
  3. تابع تكرار هذه الخطوة حتى تنتهي من تحميل جميع أجزاء الفيديو المتبقية بالترتيب الصحيح. يجب أن يراعي البرنامج، الذي استخدمته لتقسيم ملف الفيديو إلى أجزاء، تسمية الأجزاء بترتيب تسلسلي.

الخطوة السادسة: إنهاء جلسة التحميل

بمجرد الانتهاء من تحميل الجزء الأخير، يمكنك إنهاء جلسة التحميل من خلال إرسال طلب واحد أخير إلى نقطة النهاية نفسها وتعيين upload_phase لإكماله.

عينة من الطلب

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos"  \
  -F "access_token=EBACf..." \
  -F "upload_phase=finish" \
  -F "upload_session_id=225467155186799"

عند نجاح الأمر، ستنهي API جلسة التحميل وتستجيب بالقيمة true.

{
  "success": true
}

سنعمل على تجميع الفيديو وترميزه. قد تستغرق عملية الترميز عدة دقائق كحد أقصى لإنهاء الترميز بالكامل وفقًا لإجمالي حجم ملف الفيديو.