إصدار ‏‎Graph API‎‏

/{object-id}/comments

يوضح هذا المرجع عنصر الربط /comments الشائع في عُقد واجهة Graph API المتعددة. تتطابق البنية وعمليات التشغيل في كل عقدة. تمتلك الكائنات التالية عنصر الربط /comments:

يمكن أن تتضمن كائنات التعليق عنصر الربط /comments، والذي يُعرف بالردود على التعليقات. تتطابق بنية هذه الكائنات، ولكن انتبه إلى أدوات تعديل عناصر الربط تلك.

القراءة

يمكن إرجاع تعليق على كائن.

لن يتم إرجاع الحقل id في نقطة النهاية /PAGEPOST-ID/comments بعد الآن بالنسبة للتطبيقات التي تستخدم ميزة الوصول إلى المحتوى العام للصفحة. للوصول إلى معرفات التعليقات لمنشور صفحة، يجب أن تكون قادرًا على تنفيذ المهمة "MODERATE" على الصفحة التي يتم الاستعلام عنها. يسري هذا التغيير للإصدار +11.0 والإصدارات الأحدث وسيتم تطبيقه لكل الإصدارات في 7 سبتمبر2021.

تجربة الصفحة الجديدة

يتم دعم نقطة النهاية /comments للكائنات التالية لاستخدام تجربة الصفحة الجديدة:

  • Album
  • Comment
  • Link
  • Page
  • PagePost
  • Photo
  • Post
  • PostComment

الأذونات

  • يلزم توفير الأذونات نفسها المطلوبة لعرض الكائن الرئيسي من أجل عرض التعليقات على هذا الكائن.

التقييدات

  • لن يتم إرجاع معلومات الملف الشخصي والتعليقات لدى المستخدمين عند الوصول إلى منشورات المستخدم وصوره والألبومات ومقاطع الفيديو وتسجيلات الإعجاب والتفاعلات ما لم يصرح هؤلاء المستخدمون بذلك.
  • تستند التعليقات التي يتم إرجاعها في الاستعلام إلى الفلترة الافتراضية. للحصول على كل التعليقات التي يمكن إرجاعها اعتمادًا على الأذونات، يمكنك تعيين المعلمة filter إلى stream أو استخدام الحقل order.
  • يمكن لأي صفحة جديدة التعليق باسم الصفحة على الصفحات الجديدة أو الصفحات القديمة. ومع ذلك، لا يمكن لصفحة قديمة التعليق على صفحة جديدة.
  • بالنسبة للعُقد التالية، تعمل نقطة النهاية /comments على إرجاع بيانات فارغة في حالة قراءتها باستخدام رمز وصول المستخدم:
  • لن يتم إرجاع الحقل idفي نقطة النهاية /PAGEPOST-ID/comments بعد الآن بالنسبة للتطبيقات التي تستخدم ميزة الوصول إلى المحتوى العام للصفحة. للوصول إلى معرفات التعليقات لمنشور صفحة، يجب أن تكون قادرًا على تنفيذ المهمة "MODERATE" على الصفحة التي يتم الاستعلام عنها.
  • بالنسبة للكائنات التي تتضمن عشرات الآلاف من التعليقات، قد تواجه قيودًا أثناء تقسيم الصفحات. تعرف على المزيد حول تقسيم الصفحات في دليل استخدام Graph API الذي نوفره.

مثال

مستكشف Graph API
GET /v21.0/{object-id}/comments HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{object-id}/comments',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

المعلمات

GET /v21.0/{object-id}/comments?summary=1&filter=toplevel HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{object-id}/comments?summary=1&filter=toplevel',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    {
        "summary": true,
        "filter": "toplevel"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putBoolean("summary", true);
params.putString("filter", "toplevel");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    params,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"summary": @YES,
  @"filter": @"toplevel",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];
المعلمة الوصف

summary

bool (قيمة منطقية)

ملخص لبيانات التعريف حول التعليقات بالكائن. الأهم من ذلك أن بيانات التعريف هذه تتضمن order التي تشير إلى طريقة فرز التعليقات.

filter

enum (تعداد) { toplevel, stream }

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

  • toplevel - هذا هو الإعداد الافتراضي. يقوم بإرجاع أبرز التعليقات جميعها في ترتيب زمني كما هو موجود على Facebook. يكون هذا الفلتر مفيدًا عند عرض التعليقات في البنية نفسها كما هي موضحة على Facebook.
  • stream - كل التعليقات بترتيب chronological. يكون هذا الفلتر مفيدًا لأدوات الإشراف على التعليقات حيث تكون مفيدة لعرض قائمة بكل التعليقات في ترتيب زمني.

الحقول

مصفوفة تضم كائنات التعليقات، بالإضافة إلى الحقول التالية عندما يكون summary بالقيمة true في الطلب.

الحقل الوصف

order

enum (تعداد) { chronological, reverse_chronological }

الترتيب الذي يتم به إرجاع التعليقات.

  • chronological: التعليقات التي يتم فرزها حسب أقدم تعليق أولاً.
  • reverse_chronological: التعليقات التي يتم فرزها حسب أحدث تعليق أولاً.

total_count

int32

عدد التعليقات على هذه العقدة. من المهم ملاحظة أن هذه القيمة تتغير بناءً على filter الذي يتم استخدامه (حيث تكون الردود على التعليقات متوفرة):

  • إذا كان filter هو stream، فسيمثل total_count حينها عدد كل التعليقات (بما في ذلك الردود) في العقدة.
  • إذا كان filter هو toplevel، فسيمثل total_count حينها عدد كل أبرز التعليقات في العقدة.

ملاحظة: يمكن أن تكون قيمة total_count أكبر من أو تساوي عدد التعليقات الفعلي الذي يتم إرجاعه بسبب خصوصية التعليق أو الحذف.

النشر

يمكن نشر تعليقات جديدة في أي كائن.

تجربة الصفحة الجديدة

يتم دعم نقطة النهاية /comments للكائنات التالية لاستخدام تجربة الصفحة الجديدة:

  • Comments
  • PagePosts
  • Photo
  • Post
  • PostComment
  • Video

الأذونات

  • رمز وصول الصفحة الذي يطلبه شخص يمكنه تنفيذ المهمة MODERATE في الصفحة
  • الإذن pages_manage_engagement

لاحظ أن الحقل can_comment في كائنات التعليق الفردية يشير إلى ما إذا كان من الممكن الرد على هذا التعليق أم لا.

مثال

POST /v21.0/{object-id}/comments HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+comment
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{object-id}/comments',
    array (
      'message' => 'This is a test comment',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    "POST",
    {
        "message": "This is a test comment"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test comment");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test comment",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الحقول

الاسم الوصف

attachment_id

string (سلسلة)

معرف اختياري لصورة غير منشورة (راجع الحقل no_story في /{user-id}/photos) تم تحميلها على فيسبوك لتضمينها كتعليق مصور. يجب توفير attachment_id أو attachment_share_url أو attachment_url أو message أو source عند النشر.

attachment_share_url

string (سلسلة)

عنوان URL لصورة بتنسيق GIF لتضمينها كتعليق على صورة متحركة بتنسيق GIF. يجب توفير attachment_id أو attachment_share_url أو attachment_url أو message أو source عند النشر.

attachment_url

string (سلسلة)

عنوان URL لصورة لتضمينها كتعليق على صورة. يجب توفير attachment_id أو attachment_share_url أو attachment_url أو message أو source عند النشر.

source

multipart/form-data

صورة يتم تشفيرها كبيانات نموذج لاستخدامها كتعليق على صورة. يجب توفير attachment_id أو attachment_share_url أو attachment_url أو message أو source عند النشر.

message

string (سلسلة)

نص التعليق. يجب توفير attachment_id أو attachment_share_url أو attachment_url أو message أو source عند النشر.

اذكر صفحات Facebook أخرى في نص message لديك باستخدام بناء الجملة التالي:

@[page-id]

يخضع استخدام هذه الميزة إلى المراجعة.

نوع الإرجاع

إذا اكتملت العملية بنجاح، فستتلقى استجابة JSON تتضمن معرف التعليق الذي تم إنشاؤه حديثًا. علاوةً عن ذلك، فإن نقطة النهاية هذه تدعم القراءة بعد الكتابة ويمكنها على الفور إرجاع أي حقول يتم إرجاعها من قِبل عمليات القراءة.

{
  "id": "{comment-id}"
}

التحديث

لا يمكنك التحديث باستخدام عنصر الربط هذا.

الحذف

لا يمكنك الحذف باستخدام عنصر الربط هذا.

يمكن حذف التعليقات الفردية باستخدام نقطة النهاية /comment-id.