Version API du graphe

/{object-id}/comments

Cette référence décrit l’arête /comments qui est commune à plusieurs nœuds de l’API Graph. La structure et les opérations sont similaires pour chaque nœud. Les objets suivants possèdent une arête /comments :

Les objets de commentaires peuvent posséder une /comments arête, appelée réponses aux commentaires. La structure est identique pour ces derniers, mais prêtez attention aux modificateurs de ces arêtes.

Lecture

Renvoie un commentaire sur un objet.

Le id champ du /PAGEPOST-ID/comments point de terminaison ne sera plus renvoyé pour les applications utilisant la fonctionnalité Accès au contenu public de la Page. Pour accéder aux ID des commentaires d’une publication de Page, vous devez effectuer la tâche « MODERATE » sur la Page concernée. Cette modification prend effet pour les versions 11.0 et ultérieures, et sera mise en oeuvre pour les autres versions le 7 septembre 2021.

Nouvelle expérience de Page

La nouvelle version des Pages accepte les objets suivants pour le point de terminaison /comments :

  • Album
  • Commentaire
  • Lien
  • Page
  • Publication de Page
  • Photo
  • Publication
  • Commentaire de publication

Autorisations

  • Les mêmes autorisations requises pour visualiser l’objet parent sont nécessaires pour visualiser les commentaires sur cet objet.

Limites

  • Les informations de profil et les commentaires des autres utilisateur·ices ne seront pas retournés lorsqu’ils·elles accèdent aux publications, aux photos, aux albums, aux vidéos, aux mentions J’aime et aux réactions, sauf si ces utilisateurs·ices ont donné leur autorisation.
  • Les commentaires renvoyés dans une requête sont basés sur le filtrage par défaut. Pour obtenir tous les commentaires pouvant être renvoyés selon vos autorisations, définissez le paramètre filter sur stream ou utilisez le champ order.
  • Une nouvelle Page peut commenter au nom de la Page sur de nouvelles Pages ou des Pages classiques. Cependant, une Page classique ne peut pas commenter sur une nouvelle Page.
  • Pour les nœuds suivants, le point de terminaison /comments renvoie des données vides si vous effectuez la lecture avec un token d’accès utilisateur·ice :
  • Le id champ du /PAGEPOST-ID/comments point de terminaison ne sera plus renvoyé pour les applications utilisant la fonctionnalité d’Accès au contenu public de la Page. Pour accéder aux ID des commentaires d’une publication de Page, vous devez effectuer la tâche MODERATE sur la Page faisant l’objet de la requête.
  • Pour les objets possédant des dizaines de milliers de commentaires, vous pouvez rencontrer des limites durant la pagination. Consultez notre Guide d’utilisation de l’API Graph pour en savoir plus sur la pagination.

Exemple

Explorateur de l’API Graph
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
}];

Paramètres

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
}];
Paramètre Description

summary

bool

Résumé des métadonnées concernant les commentaires sur l’objet. Il est important de noter que ces métadonnées incluent le order, qui indique la façon dont les commentaires sont triés.

filter

enum { toplevel, stream }

Lorsque les utilisateur·ices peuvent répondre aux commentaires, vous pouvez filtrer les commentaires de manière à obtenir les commentaires de niveau supérieur, les commentaires directs sur la publication ou tous les commentaires par ordre chronologique.

  • toplevel - filtre par défaut. Il renvoie tous les commentaires de niveau supérieur dans l’ordre chronologique de Facebook. Ce filtre est utile pour afficher les commentaires dans la même structure que sur Facebook.
  • stream - commentaires de tous les niveaux chronological l’ordre chronologique. Ce filtre est utile pour les outils de modération des commentaires pour lesquels il est utile de voir une liste chronologique de tous les commentaires.

Champs

Tableau d’objets Commentaire en plus des champs suivants lorsque summary est défini sur true dans la requête.

Champ Description

order

enum { chronological, reverse_chronological }

Ordre dans lequel les commentaires ont été renvoyés.

  • chronological : commentaires triés du plus ancien au plus récent.
  • reverse_chronological : commentaires triés du plus récent au plus ancien.

total_count

int32

Nombre de commentaires sur ce nœud. Notez que cette valeur varie en fonction du filter utilisé (dans lequel les réponses aux commentaires sont disponibles) :

  • si filter est défini sur stream, total_count correspond au nombre total de commentaires (réponses comprises) sur le nœud.
  • si filter est défini sur toplevel, total_count correspond au nombre total des commentaires de niveau supérieur sur le nœud.

Remarque : total_count peut être supérieur ou égal au nombre réel de commentaires retournés, car certains d’entre eux n’apparaissent pas pour des raisons de confidentialité ou parce qu’ils ont été supprimés.

Publication

Publiez de nouveaux commentaires pour n’importe quel objet.

Nouvelle expérience de Page

La nouvelle version des Pages accepte les objets suivants pour le point de terminaison /comments :

  • Commentaires
  • Publications de Page
  • Photo
  • Publication
  • Commentaire de publication
  • Vidéo

Autorisations

  • Token d’accès de Page demandé par une personne autorisée à effectuer la tâche MODERATE sur la Page
  • Autorisation pages_manage_engagement

Le champ can_comment de chaque objet commentaire indique s’il est possible de répondre à ce commentaire.

Exemple

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
}];

Champs

Nom Description

attachment_id

chaîne

ID facultatif d’une photo non publiée (voir le champ no_story de /{user-id}/photos) importée dans Facebook en tant que commentaire de photo. Lors de la publication, vous devez fournir un champ attachment_id, attachment_share_url, attachment_url, message ou source.

attachment_share_url

chaîne

URL d’une image GIF à inclure en tant que commentaire avec GIF animé. Lors de la publication, vous devez fournir un champ attachment_id, attachment_share_url, attachment_url, message ou source.

attachment_url

chaîne

URL d’une image à inclure en tant que commentaire de photo. Lors de la publication, vous devez fournir un champ attachment_id, attachment_share_url, attachment_url, message ou source.

source

multipart/form-data

Photo, encodée sous forme de données de formulaire, à utiliser comme commentaire de photo. Lors de la publication, vous devez fournir un champ attachment_id, attachment_share_url, attachment_url, message ou source.

message

chaîne

Texte du commentaire. Lors de la publication, vous devez fournir un champ attachment_id, attachment_share_url, attachment_url, message ou source.

Mentionnez d’autres Pages Facebook dans le texte de votre message en utilisant la syntaxe suivante :

@[page-id]

L’utilisation de cette fonctionnalité est soumise à examen.

Type de retour

En cas de réussite, vous recevez une réponse JSON avec l’ID de commentaire créé. En outre, ce point de terminaison accepte la lecture après écriture et peut immédiatement renvoyer tous les champs issus des opérations de lecture.

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

Mise à jour

Vous ne pouvez pas effectuer de mise à jour à l’aide de cette arête.

Suppression

Vous ne pouvez pas effectuer de suppression à l’aide de cette arête.

Supprimez les commentaires individuellement à l’aide du point de terminaison /comment-id