المنشورات

يشرح هذا الدليل كيفية إنشاء منشور ونشره وتحديثه والرد على منشور في صفحة فيسبوك باسم الصفحة وحذف منشور باستخدام API الصفحات من Meta.

قبل البدء

This guide assumes you have read the Overview

For a person who can perform tasks on the page, you will need to implement Facebook Login to ask for the following permissions and receive a Page access token:

  • pages_manage_engagement
  • pages_manage_posts
  • pages_read_engagement
  • pages_read_user_engagement
  • publish_video permission, if you are publishing a video to the Page

Your app user must be able to perform the CREATE_CONTENT, MANAGE, and MODERATE tasks on the Page in the API requests.

If your app users do not own or manage the Page in the API requests, your app will need a User access token and the following features:

  • Page Public Content Access

أفضل الممارسات

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

نشر المنشورات

لنشر منشور في الصفحة، أرسل طلب POST إلى نقطة النهاية /page_id/feed، حيث يكون page_id هو معرف الصفحة، مع المعلمات التالية:

  • message يتم تعيينها على النص الموجود في المنشور
  • link يتم تعيينها على عنوان URL إذا أردت نشر رابط
  • published يتم تعيينها على true لنشر المنشور على الفور (إعداد افتراضي) أو false للنشر لاحقًا
    • يتم تضمين scheduled_publish_time إذا تم التعيين على false مع وجود التاريخ بأحد التنسيقات التالية:
      • طابع زمني لعدد صحيح بتنسيق UNIX [بالثواني] (مثل 1530432000)
      • سلسلة طابع زمني بتنسيق ISO 8061 (مثل 2018-09-01T10:15:30+01:00)
      • أي سلسلة يمكن تحليلها بطريقة أخرى بواسطة strtotime() للغة PHP (على سبيل المثال +2 weeks، tomorrow)

ملاحظات حول المنشورات المجدولة

  • يجب أن يكون تاريخ النشر بين 10 دقائق و30 يومًا من وقت بدء طلب API.
  • إذا كنت تعتمد على سلاسل التاريخ المرتبطة بـ strtotime()، فيمكنك إجراء طلب read-after-write لـ scheduled_publish_time للمنشور الذي تم إنشاؤه للتأكد من أنه كما هو متوقع.

مثال على الطلب

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_id بالقيم المتوفرة لديك.
curl -X POST "https://graph.facebook.com/v21.0/page_id/feed" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"your_message_text",
           "link":"your_url",
           "published":"false",
           "scheduled_publish_time":"unix_time_stamp_of_a_future_date",
         }'

عند نجاح العملية، يتلقى التطبيق استجابة JSON التالية والتي تتضمن معرف المنشور:

{
  "id": "page_post_id" 
}

إضافة استهداف الجمهور

لتقييد من يمكنه عرض منشور الصفحة، يمكنك إضافة الكائن targeting.geo_locations أو المعلمة feed_targeting.geo_locations في طلب POST.

-d '{
      ...
      "targeting": {
        "geo_locations": {
          "countries": [
            "CA"
          ],
          "cities": [
            {
              "key": "296875",
              "name": "Toronto"
            }
          ]
        }
      },
      ...
    }'

استكشاف الأخطاء وإصلاحها

في بعض الحالات، سيؤدي استخدام بلد ومنطقة داخل هذا البلد إلى عرض رسالة الخطأ: "تتداخل بعض مواقعك. حاول إزالة أحد المواقع." في هذه الحالات يجب استهداف البلد أو المنطقة حسب التغطية التي تريدها.

نشر منشورات الوسائط

يمكنك نشر الصور ومقاطع الفيديو في الصفحة

نشر صورة

لنشر صورة في الصفحة، أرسل طلب POST إلى نقطة النهاية /page_id/photos، حيث يكون page_id هو معرف الصفحة مع تعيين المعلمة url على الصورة للمنشور.

مثال على الطلب

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_id بالقيم المتوفرة لديك.
curl -X POST "https://graph.facebook.com/v21.0/page_id/photos" \
     -H "Content-Type: application/json" \
     -d '{
           "url":"path_to_photo",

عند نجاح العملية، يتلقى التطبيق استجابة JSON التالية والتي تتضمن معرف الصورة ومعرف المنشور:

{
  "id":"photo_id",
  "post_id":"page_post_id" 
}

نشر فيديو

يُرجى زيارة وثائق API الفيديو لنشر منشور فيديو في الصفحة.

الحصول على المنشورات

للحصول على قائمة بمنشورات الصفحة، أرسل طلب GET إلى نقطة النهاية /page_id/feed.

مثال على الطلب

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_id بالقيم المتوفرة لديك.
curl -i -X GET "https://graph.facebook.com/v21.0/page_id/feed"

عند نجاح العملية، يتلقى التطبيق استجابة JSON التالية مع مصفوفة من الكائنات التي تتضمن معرف المنشور ووقت إنشاء المنشور ومحتوى المنشور لكل منشور على الصفحة:

{
  "data": [
    {
      "created_time": "2019-01-02T18:31:28+0000",
      "message": "This is my test post on my Page.",
      "id": "page_post_id"
    }
  ],
...
}

التقييدات

  • مقاطع فيديو البث المباشر - إذا كان منشور الصفحة يحتوي على فيديو انتهت صلاحيته، مثل البث المباشر، فيمكنك الحصول على بعض حقول المنشور ولكن ليست الحقول المتعلقة بالفيديو. حيث يتمتع الفيديو بقواعد خصوصية فريدة. إذا انتهت صلاحية الفيديو، فيجب أن تكون مسؤول الصفحة حتى تتمكن من عرض المعلومات المرتبطة به.
  • زر دعوة لاتخاذ إجراء "إرسال رسالة" - يمكن استخدام أي رمز وصول لطلب منشورات الصفحة التي تمت مشاركتها بشكل عام طالما تمت الموافقة على تطبيقك لاستخدام ميزة الوصول إلى المحتوى العام للصفحة. ومع ذلك، لا يمكن الوصول إلى المنشورات التي تتضمن أزرار الدعوة لاتخاذ إجراء "إرسال رسالة" باستخدام رمز وصول صفحة أخرى نظرًا إلى أن الصفحات لا يمكنها إرسال رسائل إلى صفحات أخرى.

عناوين URL لمنشور الصفحة

يكون عنوان URL أو الرابط الثابت لمنشور الصفحة https://www.facebook.com/page_post_id.

تحديث المنشور

لتحديث منشور صفحة، أرسل طلب POST إلى نقطة النهاية /page_post_id مع تعيين المعلمات التي تريد تحديثها على المحتوى الجديد.

مثال على الطلب

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_post_id بالقيم المتوفرة لديك.
curl -X POST "https://graph.facebook.com/v21.0/page_post_id" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"I am updating my Page post",
         }'

عند نجاح العملية، يتلقى تطبيقك استجابة JSON التالية مع تعيين success على true:

{
  "success": true
}

التقييدات

لا يمكن للتطبيق تحديث منشور صفحة إلا إذا تم إجراء المنشور باستخدام هذا التطبيق.

حذف المنشور

لحذف منشور صفحة، أرسل طلب DELETE إلى نقطة النهاية /page_post_id حيث يكون page_post_id هو معرف المنشور الذي تريد حذفه.

مثال على الطلب

تم التنسيق لإمكانية القراءة. استبدل القيم الغامقة والمائلة، مثل page_post_id بالقيم المتوفرة لديك.
curl -i -X DELETE "https://graph.facebook.com/v21.0/page_post_id"

عند نجاح العملية، يتلقى تطبيقك استجابة JSON التالية مع تعيين success على true:

{
  "success": true
}

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

تعرف على كيفية التعليق على منشورات الصفحة و@ذكر شخص محدد أو صفحة قامت بالنشر أو التعليق في الصفحة.