Versione API Graph

/{object-id}/comments

Questo riferimento descrive il segmento /comments comune a più nodi dell'API Graph. La struttura e le operazioni sono le stesse per ogni nodo. I seguenti oggetti hanno un segmento /comments:

È possibile che gli oggetti commento abbiano un segmento /comments, chiamato risposte ai commenti. La struttura è la stessa, ma occorre prestare attenzione ai modificatori per questi segmenti.

Lettura

Restituisce un commento su un oggetto.

Il campo id per l'endpoint /PAGEPOST-ID/comments non verrà più restituito per le app che utilizzano la funzione Accesso ai contenuti pubblici della Pagina. Per ottenere gli ID commenti per un post della Pagina devi essere in grado di eseguire l'attività MODERATE sulla Pagina oggetto della query. Questa modifica è in vigore per le versioni 11.0 e successive e verrà implementata per tutte le versioni il 7 settembre 2021.

Nuova esperienza della Pagina

La nuova esperienza della Pagina supporta gli endpoint /comments per i seguenti oggetti:

  • Album
  • Comment
  • Link
  • Page
  • PagePost
  • Photo
  • Post
  • PostComment

Autorizzazioni

  • Le stesse autorizzazioni richieste per visualizzare l'oggetto principale sono richieste per visualizzare i commenti su quell'oggetto.

Limitazioni

  • Le informazioni del profilo e i commenti degli altri utenti non saranno restituiti all'accesso a post, foto, album, video, "Mi piace" e reazioni, a meno che i rispettivi utenti non abbiano concesso le opportune autorizzazioni.
  • I commenti restituiti in una query sono basati sui filtri predefiniti. Per ottenere tutti i commenti che possono essere restituiti in base alle tue autorizzazioni, imposta il parametro filter su stream o usa il campo order.
  • Una nuova Pagina può pubblicare commenti come Pagina sulle nuove Pagine o sulle Pagine classiche. Al contrario, una Pagina classica non può pubblicare commenti su una nuova Pagina.
  • Per i seguenti nodi, il segmento /comments restituisce dati vuoti se lo leggi con un token d'accesso utente:
  • Il campo id per l'endpoint /PAGEPOST-ID/comments non verrà più restituito per le app che utilizzano la funzione Accesso ai contenuti pubblici della Pagina. Per ottenere gli ID commenti per un post della Pagina devi essere in grado di eseguire l'attività MODERATE sulla Pagina oggetto della query.
  • Per oggetti con decine di migliaia di commenti, si può incorrere in limitazioni durante la paginazione. Scopri di più sulla paginazione nella nostra guida all'uso dell'API Graph.

Esempio

Tool di esplorazione per la 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
}];

Parametri

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

summary

bool

Un riepilogo dei metadati relativi ai commenti sull'oggetto. È importante sottolineare che questi metadati includono order, che indica come vengono ordinati i commenti.

filter

enum { toplevel, stream }

Se una persona può rispondere a un commento, puoi filtrare i commenti in modo da visualizzare quelli di alto livello, quelli fatti direttamente sul post o in base all'ordine cronologico di tutti i commenti.

  • toplevel: questa è l'impostazione predefinita. Restituisce tutti i commenti di alto livello in ordine cronologico, così come ordinati su Facebook. Questo filtro è utile per visualizzare i commenti nella stessa struttura in cui appaiono su Facebook.
  • stream: commenti di qualsiasi livello in ordine chronological. Questo filtro è consigliato per gli strumenti di moderazione dei commenti in cui è utile visualizzare un elenco cronologico di tutti i commenti.

Campi

Un array di oggetti commento oltre ai seguenti campi quando summary è true nella richiesta.

Campo Descrizione

order

enum { chronological, reverse_chronological }

Ordine in cui sono stati restituiti i commenti.

  • chronological: commenti ordinati a partire dai commenti meno recenti.
  • reverse_chronological: commenti ordinati a partire dai commenti più recenti.

total_count

int32

Il conteggio dei commenti su questo nodo. È importante notare che questo valore cambia in base al filter in uso (se sono disponibili risposte ai commenti):

  • se filter è stream, total_count sarà un conteggio di tutti i commenti (comprese le risposte) sul nodo;
  • se filter è toplevel, total_count sarà un conteggio di tutti i commenti di primo livello sul nodo.

Nota: total_count può essere maggiore o uguale al numero effettivo di commenti restituiti a causa della privacy o della cancellazione dei commenti.

Pubblicazione

Pubblica nuovi commenti su qualsiasi oggetto.

Nuova esperienza della Pagina

La nuova esperienza della Pagina supporta gli endpoint /comments per i seguenti oggetti:

  • Comments
  • PagePosts
  • Photo
  • Post
  • PostComment
  • Video

Autorizzazioni

  • Token d'accesso della Pagina richiesto da un utente che può eseguire l'attività MODERATE sulla Pagina
  • Autorizzazione pages_manage_engagement

Il campo can_comment su singoli oggetti commento indica se è possibile rispondere a quel commento.

Esempio

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

Campi

Nome Descrizione

attachment_id

string

Un ID facoltativo di una foto non pubblicata (vedere il campo no_story in /{user-id}/photos) caricata su Facebook da includere come commento con foto. Quando si esegue la pubblicazione, è necessario fornire uno tra attachment_id, attachment_share_url, attachment_url, message e source.

attachment_share_url

string

L'URL di una GIF da includere come commento con GIF animata. Quando si esegue la pubblicazione, è necessario fornire uno tra attachment_id, attachment_share_url, attachment_url, message e source.

attachment_url

string

L'URL di un'immagine da includere come commento con foto. Quando si esegue la pubblicazione, è necessario fornire uno tra attachment_id, attachment_share_url, attachment_url, message e source.

source

multipart/form-data

Una foto, codificata come dati del modulo, da utilizzare come commento con foto. Quando si esegue la pubblicazione, è necessario fornire uno tra attachment_id, attachment_share_url, attachment_url, message e source.

message

string

Testo del commento. Quando si esegue la pubblicazione, è necessario fornire uno tra attachment_id, attachment_share_url, attachment_url, message e source.

Menziona altre Pagine Facebook nel testo del message usando la seguente sintassi:

@[page-id]

L'utilizzo di questa funzione è soggetto a revisione.

Tipo di valore restituito

In caso di esito positivo, riceverai una risposta JSON con l'ID commento appena creato. Inoltre, questo endpoint supporta la modalità RAW e può restituire immediatamente tutti i campi restituiti dalle operazioni di lettura.

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

Aggiornamento

Non puoi aggiornare usando questo segmento.

Eliminazione

Non puoi eliminare usando questo segmento.

Elimina singoli commenti usando l'endpoint /comment-id.