API Graph versión

Comentario /{comment-id}

Un comment puede hacerse sobre distintos tipos de contenido en Facebook. La mayoría de los nodos de la API Graph tienen un perímetro /comments donde figuran todos los comentarios sobre ese objeto. El nodo /{comment-id} devuelve un único comment.

Lectura

Nueva experiencia de páginas

Esta API es compatible con la nueva experiencia de páginas.

Permisos

  • Generales: para leer un comentario, generalmente necesitas los mismos permisos que se requieren para ver el objeto al que se agregó el comentario.

  • Respuestas: si este comentario es una respuesta a otro, los permisos requeridos rigen para el objeto al que se agregó el comentario principal.

  • Comentarios y respuestas de una página: para los comentarios o las respuestas que pertenezcan a una página, debes usar un token de acceso a la página si quieres que se incluya la información de usuario en la respuesta.

El formato de identificador de comentarios, {page-id}_{post_id}_{comment-id}, quedó obsoleto. En su lugar, usa el formato {pagepost-id}_{comment-id}.

Explorador de la API Graph
GET /v19.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
}];

Campos

Nombre de la propiedad Descripción Tipo

id

El identificador del comentario

string

attachment

Enlace, video, sticker o foto que se adjunta al comentario.

StoryAttachment

can_comment

Si quien visualiza puede responder a este comentario.

bool

can_remove

Si quien visualiza puede eliminar este comentario.

bool

can_hide

Si quien visualiza puede ocultar este comentario. Solo visible para el administrador de una página.

boolean

can_like

Si quien visualiza puede indicar que le gusta este comentario.

boolean

can_reply_privately

Si quien visualiza puede enviar una respuesta privada a este comentario (solo personas que ven la página).

boolean

comment_count

La cantidad de respuestas a este comentario.

int32

created_time

Cuándo se hizo el comentario.

datetime

from

La persona que hizo este comentario.

User

like_count

La cantidad de veces que se indicó que a alguien le gusta este comentario.

int32

message

El texto del comentario.

string

message_tags

Una matriz de perfiles etiquetados en message.

object[]

id

Identificador del perfil que se etiquetó.

string

name

El texto que se usó en la etiqueta.

string

type

Indica qué tipo de perfil se etiquetó.

enum{user, page, group}

offset

Si el primer carácter del texto etiquetado está en el message, medido en puntos de código unicode.

integer

length

Cuántos puntos de código unicode conforman esta etiqueta, después del intervalo.

integer

object

El comentario sobre una publicación que contiene una foto o un video; se incluyen los de publicaciones dinámicas. De lo contrario, está vacío.

Object

parent

En las respuestas a comentarios, es el comentario al que corresponde la respuesta.

Comment

private_reply_conversation

En comentarios con respuestas privadas, establece la conversación entre la página y el autor del comentario (solo personas que visitan la página).

Conversation

user_likes

Si quien visualiza indicó que le gusta este comentario.

bool

Publicación

Puedes publicar comentarios con el perímetro /comments cuando está presente en un nodo.

Eliminación

Puedes eliminar un comentario usando el siguiente punto de conexión:

DELETE /v19.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
}];

Nueva experiencia de páginas

Esta API es compatible con la nueva experiencia de páginas.

Requisitos

Para eliminar un comentario publicado por una página, necesitas lo siguiente:

  • Un token de acceso a la página solicitado por una persona que pueda realizar la tarea "MODERATE" en la página
  • El permiso pages_read_engagement.
  • El permiso pages_manage_engagement

Para eliminar un comentario publicado por un usuario u otra página, necesitas lo siguiente:

  • Un token de acceso a la página solicitado por una persona que pueda realizar la tarea "MODERATE" en la página
  • El permiso pages_manage_engagement
  • El permiso pages_read_user_content.

Limitaciones

Las revisiones no son publicaciones en la página; por lo tanto, los comentarios sobre revisiones no pueden ser eliminados por una página.

Respuesta

Si la operación se completa con éxito, se mostrará lo siguiente:

{
  "success": true
}

De lo contrario, se devolverá un mensaje de error.

Actualizar

Puedes editar un comentario usando el siguiente punto de conexión:

POST /v19.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
}];

Nueva experiencia de páginas

Esta API es compatible con la nueva experiencia de páginas.

Permisos

  • Un token de acceso a la página solicitado por una persona que pueda realizar la tarea "MODERATE" en la página
  • El permiso pages_read_engagement.
  • El permiso pages_manage_engagement

Ocultar comentarios

Puedes ocultar la mayoría de los comentarios realizados en publicaciones, con las siguientes excepciones:

  • Comentarios realizados por la página.
  • Comentarios realizados por los administradores de la página.
  • Comentarios realizados por la página en la publicación de un usuario. La publicación es propiedad del usuario.
  • Comentarios realizados por cualquier usuario en la publicación de otro usuario en la página. La publicación es propiedad del usuario.
  • Comentarios realizados por el creador de un evento. La publicación es propiedad del creador del evento.
  • Comentarios realizados por un grupo de Facebook. La publicación es propiedad del grupo.
  • Comentarios realizados por cualquier persona en una opinión.

Campos

Al realizar la actualización, se debe proporcionar uno de los campos attachment_url, attachment_id, message o attachment_share_url.

Debes incluir un mensaje o un elemento adjunto. Un elemento adjunto puede ser una url, un attachment_id, o una attachment_share_url. Puedes incluir un id y una url juntos. Si incluyes una attachment_share_url, no debes incluir los demás elementos.

Al realizar la actualización, debes incluir todos los valores que figuraban en el contenido original. Si no incluyes uno de ellos, se eliminará del contenido después de la actualización. Por ejemplo, si actualizas un comentario que tiene una imagen especificada mediante una attachment_url y no la incluyes en la actualización, la imagen se eliminará.

La actualización es compatible con los campos que figuran en la sección de publicación de /object/comments. Esto incluye los campos attachment_url, attachment_id, message y source. Consulta en ese documento los detalles de estos campos.

La actualización también es compatible con el campo is_hidden, que se documenta aquí.

Nombre Descripción Tipo

is_hidden

Indica si el comentario está oculto o es visible. La persona que hizo la publicación original aún puede ver el comentario, junto con el administrador de la página y cualquier otra persona etiquetada en el comentario.

boolean

Respuesta

Si la operación se realiza correctamente, recibirás una respuesta con la información siguiente. Asimismo, este punto de conexión admite la lectura después de escritura y puede devolver de inmediato los campos devueltos por las operaciones de lectura.

{
  "success": true
}

Si la operación no se realiza correctamente, se devolverá un mensaje de error pertinente.

Perímetros

Nombre de la propiedad Descripción Tipo
/comments

Los comentarios que responden a este comentario.

Edge<Comment>
/likes

Las personas que indicaron que les gusta este comentario.

Edge<Profile>
/reactions

Las personas que reaccionaron a esta publicación.

Edge<Reaction>
/private_replies

Se utiliza para enviar un mensaje de respuesta privado a este comentario (solo personas que ven la página).

Edge<Message>