إصدار ‏‎Graph API‎‏

التعليق /{comment-id}

يمكن إجراء comment على أنواع مختلفة من المحتوى في فيسبوك. وتحتوي أغلب عُقد واجهة Graph API على عنصر ربط /comments يسرد جميع التعليقات المرتبطة بذلك الكائن. تعمل العقدة /{comment-id} على إرجاع comment واحد.

القراءة

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

تكون API هذه مدعومة لتجربة الصفحة الجديدة.

الأذونات

  • عام - لقراءة أي تعليق، تحتاج بوجه عام إلى الأذونات نفسها المطلوبة لعرض الكائن الذي أُضيف إليه التعليق.

  • الردود - إذا كان هذا تعليقًا يمثل ردًا على تعليق آخر، فإن الأذونات المطلوبة تُطبق على الكائن الذي تمت إضافة التعليق الأصل إليه.

  • التعليقات والردود المملوكة للصفحة — بالنسبة لأي تعليقات أو ردود مملوكة للصفحة أو (واردة فيها)، يجب عليك استخدام رمز وصول الصفحة إذا كنت تريد تضمين معلومات المستخدم في الاستجابة.

تم إيقاف استخدام تنسيق معرف التعليق على منشور الصفحة {page-id}_{post_id}_{comment-id}. وبدلاً من ذلك، يمكنك استخدام التنسيق {pagepost-id}_{comment-id}.

مستكشف Graph API
GET /v21.0/{comment-id} 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(
    '/{comment-id}',
    '{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(
    "/{comment-id}",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{comment-id}",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الحقول

اسم الخاصية الوصف النوع

id

تمثل معرف التعليق

string

attachment

تمثل الرابط أو الفيديو أو الملصق أو الصورة المرفقة بالتعليق

StoryAttachment

can_comment

تشير إلى ما إذا كان المشاهد يستطيع الرد على هذا التعليق أم لا

bool

can_remove

تشير إلى ما إذا كان المشاهد يستطيع إزالة هذا التعليق أم لا

bool

can_hide

تشير إلى ما إذا كان المشاهد يستطيع إخفاء هذا التعليق أم لا. مرئية فقط لمسؤول الصفحة

boolean

can_like

تشير إلى ما إذا كان المشاهد يستطيع تسجيل الإعجاب بهذا التعليق أم لا

boolean

can_reply_privately

تشير إلى ما إذا كان المشاهد يستطيع إرسال رد خاص على هذا التعليق أم لا (مشاهدو الصفحة فقط)

boolean

comment_count

تمثل عدد الردود على هذا التعليق

int32

created_time

تمثل وقت كتابة هذا التعليق

datetime

from

تمثل الشخص الذي كتب هذا التعليق

User

like_count

تمثل عدد تسجيلات الإعجاب بهذا التعليق

int32

message

تمثل نص التعليق

string

message_tags

تمثل مصفوفة من الملفات الشخصية التي تمت الإشارة إليها في message.

object[]

id

تمثل معرف الملف الشخصي الذي تم الإشارة إليه.

string

name

تمثل النص المستخدم في الإشارة.

string

type

تشير إلى نوع الملف الشخصي الذي تمت الإشارة إليه.

enum{user, page, group}

offset

مكان الحرف الأول للنص الذي تمت الإشارة إليه في message، ويتم قياسه في نقاط رموز unicode.

integer

length

عدد النقاط البرمجية لحرف unicode التي تتكون منها هذه الإشارة، بعد الإزاحة.

integer

object

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

Object

parent

بالنسبة للردود على التعليق، هذا هو التعليق الأصل الذي يتضمن هذا الرد.

Comment

permalink_url

عنوان URL الثابت للتعليق.

إذا كانت تتوفر لدى التطبيق الذي يقوم بالاستدعاء ميزة الوصول إلى المحتوى العام للصفحة فقط، فلن يتم إرجاع هذا الحقل في استعلامات الإصدار 20.0 والإصدارات الأحدث. يتم تطبيق هذا التغيير على كل استعلامات الإصدار بدءًا من 19 أغسطس 2024.

string

private_reply_conversation

أما بالنسبة للتعليقات التي تتضمن ردودًا خاصة، فتتم المحادثة بين الصفحة ومؤلف التعليق (مشاهدو الصفحة فقط)

Conversation

user_likes

تشير إلى ما إذا كان المشاهد قد سجل إعجابه بهذا التعليق.

bool

النشر

يمكنك نشر التعليقات باستخدام عنصر ربط /comments عندما يكون متوفرًا في عقدة.

الحذف

يمكنك حذف تعليق باستخدام نقطة النهاية التالية:

DELETE /v21.0/{comment-id} HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{comment-id}',
    array (),
    '{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(
    "/{comment-id}",
    "DELETE",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{comment-id}",
    null,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

تكون API هذه مدعومة لتجربة الصفحة الجديدة.

المتطلبات

لحذف تعليق تم نشره بواسطة صفحة، ستحتاج إلى ما يلي:

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

لحذف تعليق تم نشره بواسطة مستخدم أو صفحة أخرى، ستحتاج إلى ما يلي:

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

التقييدات

لا تمثل المراجعات منشورات صفحات، لذلك لا يمكن للصفحة إزالة التعليقات على المراجعات.

الاستجابة

إذا كانت ناجحة:

{
  "success": true
}

بخلاف ذلك، ستظهر رسالة الخطأ ذات الصلة.

التحديث

يمكنك تعديل تعليق باستخدام نقطة النهاية التالية:

POST /v21.0/{comment-id} 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(
    '/{comment-id}',
    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(
    "/{comment-id}",
    "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(),
    "/{comment-id}",
    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:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

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

تكون API هذه مدعومة لتجربة الصفحة الجديدة.

الأذونات

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

إخفاء التعليقات

يمكنك إخفاء معظم التعليقات على المنشورات التي تتضمن الاستثناءات التالية:

  • التعليقات التي تمت بواسطة الصفحة
  • التعليقات التي تمت بواسطة مسؤولي الصفحة
  • التعليقات التي تمت بواسطة الصفحة على منشور المستخدم أي أن المنشور يكون مملوكًا بوسطة المستخدم.
  • التعليقات التي تمت من جانب أي مستخدم على منشور مستخدم آخر على الصفحة. أي أن المنشور يكون مملوكًا بوسطة المستخدم.
  • التعليقات التي تمت بواسطة منشئ محتوى الحدث. أي أن المنشور يكون مملوكًا بواسطة منشئ محتوى الحدث.
  • التعليقات التي تمت بواسطة مجموعة فيسبوك. أي أن المنشور يكون مملوكًا بوسطة المجموعة.
  • التعليقات التي تمت من جانب أي شخص على مراجعة

الحقول

يجب توفير أي من attachment_url أوattachment_id أو message أو attachment_share_url عند التحديث.

يجب عليك تضمين رسالة أو مرفق. يمكن أن يكون المرفق عبارة عن url أو attachment_id أو attachment_share_url. ويمكنك تضمين id وurl معًا. إذا قمت بتضمين attachment_share_url، فلا يجب تضمين العناصر الأخرى.

عند التحديث، يجب تضمين أي قيم كانت متوفرة في المحتوى الأصلي. وإذا لم تقم بتضمين أي منها، فستتم إزالتها من المحتوى بعد التحديث. على سبيل المثال، إذا قمت بتحديث تعليق يحتوي على صورة تم تحديدها عبر attachment_url ولم تقم بتضمينها في التحديث، فستتم إزالة الصورة.

يساعد التحديث على دعم الحقول المدرجة في قسم النشر لدى /object/comments. ويتضمن ذلك attachment_url وattachment_id وmessage وsource. يُرجى الاطلاع على ذلك المستند للحصول على التفاصيل حول هذه الحقول.

كما يدعم التحديث أيضًا الحقل is_hidden، الموثّق هنا.

الاسم الوصف النوع

is_hidden

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

boolean

الاستجابة

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

{
  "success": true
}

إذا لم تكن العملية ناجحة، فسيتم إرجاع رسالة خطأ ذات صلة.

عناصر الربط

اسم الخاصية الوصف النوع
/comments

التعليقات التي ترد على هذا التعليق.

Edge<Comment>
/likes

الأشخاص الذين سجلوا إعجابهم بهذا التعليق.

Edge<Profile>
/reactions

الأشخاص الذين تفاعلوا على هذا المنشور.

Edge<Reaction>
/private_replies

يتم استخدامه لإرسال رسالة خاصة كرد على هذا التعليق (مشاهدو الصفحة فقط).

Edge<Message>