versión API Graph

Comentario /{comment-id}

Un objeto comment se puede dejar en diferentes tipos de contenido en Facebook. La mayoría de los nodos de la API Graph tienen un perímetro /comments que enumera todos los comentarios de ese objeto. El nodo /{comment-id} devuelve un objeto comment único.

Lectura

Nueva experiencia para páginas

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

Permisos

  • Generales: para leer un comentario, normalmente necesitas los mismos permisos que se requieren para ver el objeto al que se añadió el comentario.

  • Respuestas: si se trata de un comentario que es una respuesta a otro, los permisos necesarios se aplican al objeto al que se añadió el comentario principal.

  • Comentarios y respuestas propiedad de una página: en el caso de los comentarios o respuestas que sean propiedad de una página, debes usar un identificador de acceso a la página si quieres que la información de usuario se incluya en la respuesta.

El formato del identificador de comentario de publicación de la página ({page-id}_{post_id}_{comment-id}) se ha retirado. Debes utilizar el formato {pagepost-id}_{comment-id} en su lugar.

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

Identificador del comentario.

string

attachment

Enlace, vídeo, sticker o foto que se adjunta al comentario.

StoryAttachment

can_comment

Indica si el usuario puede responder al comentario.

bool

can_remove

Indica si el usuario puede eliminar el comentario.

bool

can_hide

Indica si el usuario puede ocultar el comentario. Solo es visible para el administrador de la página.

boolean

can_like

Indica si el usuario puede indicar que le gusta el comentario.

boolean

can_reply_privately

Indica si el usuario puede enviar una respuesta privada al comentario (solo para usuarios de la página).

boolean

comment_count

Número de respuestas al comentario.

int32

created_time

Hora en que se realizó el comentario.

datetime

from

Persona que realizó el comentario.

User

like_count

Número de veces que los usuarios indicaron que les gusta el comentario.

int32

message

Texto del comentario.

string

message_tags

Matriz de perfiles etiquetados en el objeto message.

object[]

id

Identificador del perfil etiquetado.

string

name

Texto usado en la etiqueta.

string

type

Indica el tipo de perfil etiquetado.

enum{user, page, group}

offset

Ubicación del primer carácter del texto etiquetado en el objeto message, medido en puntos de código unicode.

integer

length

Número de puntos de código unicode que contiene la etiqueta, después del desplazamiento.

integer

object

Comentario de una publicación que contiene una foto o un vídeo, incluidos los de las publicaciones dinámicas. Si el comentario no tiene fotos o vídeos, esta propiedad está vacía.

Object

parent

Comentario al que se responde en el caso de las respuestas a comentarios.

Comment

private_reply_conversation

Obtiene la conversación entre la página y el autor del comentario en el caso de los comentarios con respuestas privadas (solo para usuarios de la página).

Conversation

user_likes

Señala si el usuario ha indicado que le gusta el comentario.

bool

Publicación

Cuando el perímetro /comments está presente en un nodo, puedes utilizarlo para publicar comentarios.

Eliminación

Para eliminar un comentario, puedes utilizar el extremo siguiente:

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 para páginas

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

Requisitos

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

  • Un identificador 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, necesitarás lo siguiente:

  • Un identificador 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 opiniones no son publicaciones de la página, de modo que una página no puede eliminar los comentarios de las opiniones.

Respuesta

Si la operación se completa correctamente:

{
  "success": true
}

De lo contrario, se devolverá el correspondiente mensaje de error.

Actualización

Para editar un comentario, puedes utilizar el extremo siguiente:

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 para páginas

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

Permisos

  • Un identificador 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 de publicaciones, salvo en los siguientes casos:

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

Campos

En el momento de la actualización, se debe proporcionar uno de los siguientes campos: attachment_url, attachment_id, message o attachment_share_url.

Debes incluir un mensaje o un archivo adjunto. El archivo adjunto se puede especificar mediante un campo url, attachment_id o attachment_share_url. Puedes incluir los campos id y url juntos. Si incluyes el campo attachment_share_url, no debes incluir los demás.

En el momento de la actualización, debes incluir todos los valores presentes 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 que se especificó mediante el campo attachment_url y no lo incluyes en la actualización, la imagen se eliminará.

La actualización admite los campos que se enumeran en la sección de publicación del objeto /object/comments. Entre ellos, se incluyen los siguientes: attachment_url, attachment_id, message y source. Consulta ese documento para obtener más información sobre estos campos.

La actualización también admite el campo is_hidden, que se presenta a continuación.

Nombre Descripción Tipo

is_hidden

Indica si el comentario está oculto o es visible. La persona que publicó originalmente el comentario todavía lo puede ver, así como el administrador de la página y cualquier persona etiquetada en él.

boolean

Respuesta

Si la operación se realiza correctamente, recibirás una respuesta con la información siguiente. Además, este extremo admite la operación de lectura después de la escritura y puede devolver inmediatamente cualquier campo que devuelvan las operaciones de lectura.

{
  "success": true
}

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

Perímetros

Nombre de la propiedad Descripción Tipo
/comments

Comentarios que responden al comentario.

Edge<Comment>
/likes

Personas que han indicado que les gusta el comentario.

Edge<Profile>
/reactions

Personas que han reaccionado a la publicación.

Edge<Reaction>
/private_replies

Se usa para enviar una respuesta a este comentario a través de un mensaje privado (solo para usuarios de la página).

Edge<Message>