Versão Graph API

Comentário /{comment-id}

Um comment pode ser feito em diversos tipos de conteúdo do Facebook. A maioria dos nós da Graph API tem uma borda /comments que lista todos os comentários sobre o objeto. O nó /{comment-id} retorna um único comment.

Leitura

Nova experiência de Página

Esta API é compatível com a nova experiência de Página.

Permissões

  • Geral: para ler um comentário, normalmente você precisa das mesmas permissões exigidas para visualizar o objeto ao qual o comentário foi adicionado.

  • Respostas: se o comentário for uma resposta a outro, as permissões necessárias se aplicam ao objeto ao qual o comentário inicial foi adicionado.

  • Comentários e respostas de propriedade da página: para os comentários ou respostas de propriedade de uma página, será necessário usar um token de acesso caso você queira que informações do usuário sejam incluídas na resposta.

O formato do ID do comentário na publicação da Página, {page-id}_{post_id}_{comment-id}, ficou obsoleto. Use o formato {pagepost-id}_{comment-id}.

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

Campos

Nome da propriedade Descrição Tipo

id

O ID do comentário.

string

attachment

Link, vídeo, figurinha ou foto anexados ao comentário.

StoryAttachment

can_comment

Se o visualizador pode responder ao comentário.

bool

can_remove

Se o visualizador pode remover o comentário.

bool

can_hide

Se o visualizador pode ocultar o comentário. Visível apenas para o administrador da Página.

boolean

can_like

Se o visualizador pode curtir o comentário.

boolean

can_reply_privately

Se o visualizador pode responder ao comentário via mensagem privada (somente visualizadores da Página).

boolean

comment_count

Número de respostas ao comentário.

int32

created_time

O horário em que o comentário foi feito.

datetime

from

A pessoa que fez o comentário.

User

like_count

O número de vezes que o comentário foi curtido.

int32

message

O texto do comentário.

string

message_tags

Uma matriz de perfis marcados no texto de message.

object[]

id

O ID do perfil que foi marcado.

string

name

O texto usado na marcação.

string

type

Indica qual tipo de perfil foi marcado.

enum{user, page, group}

offset

O lugar onde está o primeiro caractere do texto marcado em message, medido em pontos de código unicode.

integer

length

O número de pontos de código unicode que formam a marcação depois do deslocamento.

integer

object

O comentário em uma publicação que contém foto ou vídeo, incluindo aqueles em publicações dinâmicas. Caso contrário, o campo ficará vazio.

Object

parent

No caso de respostas, o comentário inicial que foi respondido.

Comment

permalink_url

URL de link permanente do comentário.

Se tiver apenas o recurso de Acesso ao Conteúdo Público da Página, o app de chamada não será retornado nas consultas a partir da versão 20.0. Essa alteração é válida para consultas de todas as de versões a partir de 19 de agosto de 2024.

string

private_reply_conversation

Para comentários com respostas privadas, obtém as conversas entre a Página e o autor do comentário (apenas para visualizadores da Página).

Conversation

user_likes

Se o visualizador curtiu o comentário.

bool

Publicação

É possível publicar comentários usando a borda /comments quando ela estiver presente em um nó.

Exclusão

É possível excluir um comentário usando este ponto de extremidade:

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

Nova experiência de Página

Esta API é compatível com a nova experiência de Página.

Requisitos

Para excluir um comentário publicado por uma Página será necessário:

  • um token de acesso à Página solicitado pela pessoa que pode realizar a tarefa `MODERATE` na Página;
  • a permissão pages_read_engagement;
  • A permissão pages_manage_engagement.

Para excluir um comentário publicado por um usuário ou uma outra Página será necessário:

  • um token de acesso à Página solicitado pela pessoa que pode realizar a tarefa `MODERATE` na Página;
  • A permissão pages_manage_engagement.
  • a permissão pages_read_user_content.

Limitações

As avaliações não são publicações da Página. Por isso, os comentários sobre elas não podem ser removidos por uma Página.

Resposta

Caso a operação seja bem-sucedida:

{
  "success": true
}

Caso contrário, uma mensagem de erro relevante será exibida.

Atualização

É possível editar um comentário usando este ponto de extremidade:

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

Nova experiência de Página

Esta API é compatível com a nova experiência de Página.

Permissões

  • um token de acesso à Página solicitado pela pessoa que pode realizar a tarefa `MODERATE` na Página;
  • a permissão pages_read_engagement;
  • A permissão pages_manage_engagement.

Como ocultar comentários

A maioria dos comentários das publicações podem ser ocultados, exceto:

  • comentários feitos pela Página;
  • comentários feitos pelos administradores da Página;
  • comentários feitos pela Página na publicação de um usuário (a publicação é de propriedade do usuário);
  • comentários feitos por qualquer pessoa na publicação de um usuário na Página (a publicação é de propriedade do usuário);
  • comentários feitos pelo criador de um evento (a publicação é de propriedade do criador do evento);
  • comentários feitos por um grupo do Facebook (a publicação é de propriedade do grupo);
  • comentários feitos por qualquer pessoa em uma avaliação.

Campos

É necessário fornecer uma das seguintes opções ao publicar: attachment_url, attachment_id, message ou attachment_share_url.

É obrigatório incluir uma mensagem ou um anexo. O anexo pode ser do tipo url, attachment_id ou attachment_share_url. É possível incluir um id e uma url juntos. Se você incluir um attachment_share_url, não será possível incluir os outros.

Durante uma atualização, você precisa incluir todos os valores presentes no conteúdo original. Caso um deles não seja incluído, ele será removido do conteúdo após a atualização. Por exemplo, se você atualizar um comentário com uma imagem especificada por attachment_url e não a incluir na atualização, a imagem será removida.

A atualização aceita os campos listados na seção de publicação de /object/comments. Isso inclui attachment_url, attachment_id, message e source. Consulte o documento para mais informações sobre esses campos.

A atualização também é compatível com o campo is_hidden, documentado aqui.

Nome Descrição Tipo

is_hidden

Se o comentário está oculto ou visível. O usuário que fez a publicação original, o administrador da página e qualquer pessoa marcada ainda conseguem ver o comentário.

boolean

Resposta

Se a ação for bem-sucedida, você receberá uma resposta com as informações a seguir. Além disso, esse ponto de extremidade aceita leitura após gravação e pode retornar imediatamente todos os campos obtidos via operações de leitura.

{
  "success": true
}

Caso contrário, uma mensagem de erro relevante será retornada.

Bordas

Nome da propriedade Descrição Tipo
/comments

Comentários que respondem a este comentário.

Edge<Comment>
/likes

Pessoas que curtiram este comentário.

Edge<Profile>
/reactions

As pessoas que reagiram à publicação.

Edge<Reaction>
/private_replies

Usado para enviar respostas via mensagem privada a este comentário (somente visualizadores da Página).

Edge<Message>