يعرض هذا المستند كيفية استخدام Facebook Stories API لنشر القصص على صفحات فيسبوك.
لنشر قصة، ستقوم بإجراء الخطوات التالية:
يفترض هذا الدليل أنك قرأت نظرة عامة على واجهة API الصفحات وقمت بتنفيذ المكونات المطلوبة، وقمت بإكمال دليل بدء الاستخدام بنجاح.
ستحتاج إلى تنفيذ تسجيل دخول فيسبوك أو تسجيل دخول فيسبوك للأعمال لطلب الأذونات من مستخدمي التطبيق للوصول إلى صفحات فيسبوك ولتلقي رموز وصول الصفحة.
سيتعين على مستخدمي التطبيق أن يكونوا قادرين على تنفيذ المهمة CREATE_CONTENT
في الصفحة الموضحة في رمز وصول الصفحة ومنح التطبيق الأذونات التالية:
pages_manage_posts
pages_read_engagement
pages_show_list
إذا كنت تستخدم حساب مستخدم نظام نشاط تجاري في طلبات API، فإن الإذن business_management
سيكون مطلوبًا.
يجب تقديم صورة أو فيديو يناسب المواصفات التالية.
الخاصية | المواصفات |
---|---|
نوع الملف | .jpeg و.bmp و.png و.gif و.tiff |
حجم الملف | لا يمكن أن يتجاوز حجم الملفات 4 ميجابايت. بالنسبة إلى ملفات .png، نوصي ألا يتجاوز الحجم 1 ميجابايت وإلا فقد تظهر الصورة بدقة منخفضة. |
الخاصية | المواصفات | ||
---|---|---|---|
نوع الملف | .mp4 (موصى به) | ||
نسبة العرض إلى الارتفاع | 9 × 16 | ||
الحل | 1080 × 1920 بيكسل (موصى به). الحد الأدنى هو 540 × 960 بيكسل | ||
معدل الإطارات | 24 إلى 60 إطارًا في الثانية | ||
المدة | 3 إلى 90 ثانية. لا يمكن أن يتخطى مقطع ريلز الذي يتم نشره كقصة في صفحة فيسبوك 60 ثانية. | ||
إعدادات الفيديو |
| ||
إعدادات الصوت |
|
GET
لعرض قائمة بالقصص، يجب تشغيل أرشيف القصص على فيسبوك
عند اختبار استدعاء API، يمكنك تضمين المعلمة access_token
وتعيينها على رمز الوصول. مع ذلك، عند إجراء استدعاءات آمنة من التطبيق، استخدم فئة رمز الوصول.
يتم تنسيق أمثلة الرموز ضمن هذا المستند لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_id بالقيم المتوفرة لديك.
لنشر قصة فيديو على صفحة فيسبوك، ستقوم بتهيئة جلسة تحميل الفيديو من خلال خوادم Meta وتحميل الفيديو على خوادم Meta ثم نشر قصة الفيديو.
لتهيئة جلسة التحميل، أرسل طلب POST
إلى نقطة النهاية /page_id/video_stories
حيث يكون page_id
هو معرف صفحة فيسبوك، مع تعيين المعلمة upload_phase
على start
.
curl -X POST "https://graph.facebook.com/v21.0
/page_id/video_stories" \
-d '{
"upload_phase":"start",
}'
عند نجاح العملية، يتلقى التطبيق استجابة JSON تتضمن معرف الفيديو وعنوان URL في فيسبوك حيث سيتم تحميل الفيديو.
{
"video_id": "video_id",
"upload_url": "https://rupload.facebook.com/video-upload/v21.0
/video_id",
}
الآن بعد تهيئة جلسة التحميل وتلقي عنوان URL التحميل، يمكنك تحميل الفيديو. يمكنك تحميل:
لتحميل ملف مستضاف، أرسل طلب POST
إلى نقطة النهاية upload_url
التي تلقيتها في خطوة التهيئة مع تضمين المعلمات التالية:
file_url
تم تعيينه على عنوان URL ملف الفيديو
curl -X POST "https://rupload.facebook.com/video-upload/v21.0
/video_id" \
-H "file_url: https://some.cdn.url/video.mp4"
لتحميل ملف محلي، أرسل طلب POST
إلى نقطة النهاية upload_url
التي تلقيتها في خطوة التهيئة مع تضمين المعلمات التالية:
offset
على 0
file_size
على الحجم الإجمالي بالبايت للفيديو الذي يتم تحميله
curl -X POST "https://rupload.facebook.com/video-upload/v21.0
/video_id" \
-H "offset: 0" \
-H "file_size: file_size_in_bytes" \
--data-binary "@/path/to/file/my_video_file.mp4"
عند نجاح التحميل، يتلقى التطبيق استجابة JSON مع تعيين success
على true
.
{ "success": true }
إذا تمت مقاطعة تحميل الفيديو، فيمكنك إعادة تشغيل التحميل أو استئنافه.
POST
وقم بتعيين offset
على 0
. POST
مع تعيين offset
على القيمة bytes_transfered
من عملية التحقق من الحالة.للتحقق من حالة الفيديو أثناء التحميل أو النشر، أرسل طلب GET
إلى نقطة النهاية /video_id
بمع تضمين المعلمة التالية:
fields
على status
curl -X GET "https://graph.facebook.com/v21.0
/video_id" \
-d "fields=status"
عند نجاح العملية، يتلقى التطبيق استجابة JSON تحتوي على:
status
يحتوي على:
video_status
بالقيمة ready
أو processing
أو expired
أو error
uploading_phase
بأزواج القيم والمفاتيح التالية:
status
على in_progress
أو not_started
أو complete
أو error
bytes_transfered
على البايت التي تم تحميلها. يمكن استخدامها كقيمة لـ offset
إذا تمت مقاطعة التحميل.processing_phase
بأزواج القيم والمفاتيح التالية:
status
على in_progress
أو not_started
أو complete
أو error
processing_phase
بأزواج القيم والمفاتيح التالية:
status
على in_progress
أو not_started
أو complete
أو error
publish_status
على published
أو not_published
publish_time
على طابع زمني بتنسيق UNIX للوقت الفعلي أو المنشور
تعرض الاستجابة التالية ملفًا تم تحميله بنجاح.
{ "status": { "video_status": "processing", "uploading_phase": { "status": "in_progress", "bytes_transfered": 50002 }, "processing_phase": { "status": "not_started" } "publishing_phase": { "status": "not_started", "publish_status": "published", "publish_time": 234523452 } } } |
تعرض الاستجابة التالية خطأ حدث في مرحلة المعالجة.
{ "status": { "video_status": "processing", "uploading_phase": { "status": "complete" }, "processing_phase": { "status": "not_started", "error": { "message": "Resolution too low. Video must have a minimum resolution of 540p." } } "publishing_phase": { "status": "not_started" } } } |
لنشر قصة فيديو إلى الصفحة، سترسل POST
إلى نقطة النهاية /page_id
/video_stories
مع تضمين المعلمات التالية:
video_id
على معرف الفيديو الذي تم تحميلهupload_phase
على finish
curl -X POST "https://graph.facebook.com/v21.0
/page_id/video_stories" \
-d '{
"video_id": "video_id",
"upload_phase": "finish"
}'
عند نجاح العملية، يتلقى التطبيق استجابة JSON تحتوي على أزواج القيم والمفاتيح التالية:
success
على true
post_id
على معرف منشور القصة{ "success": true, "post_id": 1234 }
تفضل بزيارة مرجع منشورات الصفحة للتعرف على كيفية تحميل صورة في خوادم Meta باستخدام نقطة النهاية /page_id/photos
. تأكد من تضمين المعلمة published
وتعيينها على false
.
لنشر قصة صورة على الصفحة، سترسل طلب POST
إلى نقطة النهاية /page_id
/photo_stories
مع تضمين المعلمات التالية:
photo_id
على معرف الصورة التي تم تحميلها
curl -X POST "https://graph.facebook.com/v21.0
/page_id/photo_stories" \
-d '{
"photo_id": "photo_id"
}'
عند نجاح العملية، يتلقى التطبيق استجابة JSON تحتوي على أزواج القيم والمفاتيح التالية:
success
على true
post_id
على معرف منشور القصة{ "success": true, "post_id": 1234 }
للحصول على قائمة بكل القصص في الصفحة وبيانات حول القصة، أرسل طلب GET
إلى نقطة النهاية /
page_id
/stories
حيث يكون page_id
هو معرف الصفحة التي تريد عرضها.
curl -i -X GET "https://graph.facebook.com/v21.0
/page_id/stories"
عند نجاح العملية، يتلقى التطبيق استجابة JSON تتضمن مصفوفة كائنات حيث يحتوي كل كائن على معلومات حول قصة منشورة في الصفحة. يحتوي كل كائن على أزواج القيم والمفاتيح التالية:
post_id
على معرف منشور القصة المنشورةstatus
على PUBLISHED
وARCHIVED
creation_time
على طابع زمني بتنسيق UNIX عند نشر القصةmedia_type
على video
أو photo
media_id
على معرف الفيديو أو القصة في منشور القصةurl
على عنوان URL فيسبوك لمنشور القصة، مثل https://facebook.com/stories/8283482737484972
{ "data": [ { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "video", "media_id": "video_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "ARCHIVED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, ... ], }
يمكنك فلترة القصص حسب الحالة، إما منشورة أو مؤرشفة، والتاريخ باستخدام المعلمتين since
وuntil
.
تعرف على المزيد حول نقاط النهاية والمفاهيم الموضحة في هذا الدليل.