Implementazione: commenti

Il metodo comments.markAsSpam non è più supportato.

I seguenti esempi mostrano come utilizzare l'API YouTube Data (v3) per eseguire funzioni correlate ai commenti.

Recuperare i commenti di un video

Per recuperare un elenco di thread di commenti per un video, chiama il metodo commentThreads.list. Imposta i seguenti valori dei parametri nella richiesta:

  • part: imposta il valore del parametro su snippet se vuoi recuperare solo i commenti di primo livello o su snippet,replies se vuoi recuperare anche le risposte ai commenti di primo livello. (Tieni presente che una risorsa commentThread non contiene necessariamente tutte le risposte a un commento e devi utilizzare il metodo comments.list se vuoi recuperare tutte le risposte a un commento specifico.)

  • videoId: specifica l'ID video di YouTube del video per il quale stai recuperando i commenti.

La richiesta riportata di seguito recupera i commenti e le risposte ai commenti relativi al video del discorso programmatico della conferenza Google I/O 2014, il cui ID video è wtLJPvx7-ys.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&videoId=wtLJPvx7-ys

Recuperare i commenti su un canale o associati a un canale

L'API supporta la possibilità di recuperare i thread di commenti su un canale o tutti i thread di commenti associati a un canale. In quest'ultimo caso, l'API potrebbe contenere commenti sul canale o su uno qualsiasi dei video del canale.

La richiesta riportata di seguito recupera tutti i thread di commenti associati al canale YouTube GoogleDevelopers:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&allThreadsRelatedToChannelId=UC_x5XG1OV2P6uZZ5FSM9Ttw

Aggiunta di un commento

Chiama il metodo commentThreads.insert per aggiungere un nuovo commento di primo livello a un canale o a un video. Imposta il valore del parametro part della richiesta su snippet. Il corpo della richiesta è un commentThread resource in cui la proprietà snippet.topLevelComment[].snippet[].textOriginal contiene il testo del commento. Questa richiesta deve essere autorizzata utilizzando OAuth 2.0.

  • Per aggiungere un commento a un canale, utilizza la proprietà snippet.channelId per identificare il canale.
  • Per aggiungere un commento a un video, utilizza la proprietà snippet.channelId per identificare il canale che ha caricato il video. Utilizza anche la proprietà snippet.videoId per identificare il video.

La seguente richiesta di esempio aggiunge un commento a un video.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.insert?
part=snippet

La richiesta inserisce la risorsa mostrata di seguito.

{
 "snippet": {
  "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "topLevelComment": {
   "snippet": {
    "textOriginal": "This video is awesome!"
   }
  },
  "videoId": "MILSirUni5E"
 }
}

Rispondere a un commento

Chiama il metodo comments.insert per rispondere a un commento. Imposta il valore del parametro part della richiesta su snippet. Il corpo della richiesta è un comment resource in cui la proprietà snippet.textOriginal contiene il testo del commento. La proprietà snippet.parentId identifica il commento associato alla risposta e il suo valore è un commentThread resource's ID. Questa richiesta deve essere autorizzata utilizzando OAuth 2.0.

La seguente richiesta di esempio aggiunge una risposta a un commento esistente.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.insert?
part=snippet

La richiesta inserisce la risorsa mostrata di seguito. Per eseguire la richiesta in Esplora API, utilizza il valore della proprietà snippet.parentId per identificare il commento di primo livello associato alla risposta. In una risorsa commentThread, la proprietà snippet.topLevelComment[].id specifica l'ID univoco della risorsa.

{
  "snippet": {
    "parentId": "COMMENT_THREAD_ID",
    "textOriginal": "That is true."
  }
}

Aggiornare un commento di primo livello o una risposta a un commento

Per aggiornare il testo di un commento di primo livello o di una risposta a un commento di primo livello, chiama il metodo comments.update. Imposta il valore del parametro part su snippet. Nel corpo della richiesta, la proprietà id identifica il commento che stai modificando e il nuovo testo del commento.

  • In una risorsa commentThread, che identifica un commento di primo livello, la proprietà snippet.topLevelComment[].id specifica l'ID univoco del commento.
  • In una risorsa comment, che può identificare un commento di primo livello o una risposta a un commento, la proprietà id specifica l'ID univoco del commento.

La richiesta di esempio riportata di seguito aggiorna il testo di un commento esistente.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.update?
part=snippet

Il corpo della richiesta contiene lo snippet JSON mostrato di seguito. Per eseguire la richiesta in Esplora API, imposta il valore della proprietà id per identificare il commento che stai aggiornando. La richiesta deve essere autorizzata dall'autore del commento.

{
  "id": "COMMENT_ID",
  "snippet": {
    "textOriginal": "That is true."
  }
}

Impostare lo stato di moderazione di un commento

Per impostare lo stato di moderazione di un commento, chiama il metodo comments.setModerationStatus. Questa azione viene utilizzata quando il proprietario di un canale modera i commenti sul canale o sui video del canale.

Quando chiami questo metodo, imposta il valore del parametro id per identificare il commento. Imposta anche il parametro moderationStatus sullo stato desiderato. Lo stato di un commento può essere modificato solo dal proprietario del canale in cui viene visualizzato il commento.

  • Passaggio 1: recuperare i commenti trattenuti per la revisione

    Chiama il metodo commentThreads.list per recuperare i commenti per il canale o il video. Imposta il valore del parametro moderationStatus su heldForReview. La risposta dell'API potrebbe essere utilizzata per visualizzare un elenco di commenti con un'opzione per il proprietario del canale per pubblicare o rifiutare ciascun commento.

  • Passaggio 2: aggiornare lo stato di moderazione di un commento

    Chiama il metodo comments.setModerationStatus per aggiornare lo stato del commento. Utilizza il valore del parametro id per specificare l'ID univoco del commento. Imposta il parametro moderationStatus su published o rejected. Se stai rifiutando un commento, puoi anche impostare il parametro banAuthor su true per impedire all'autore di aggiungere altri commenti sul canale o sul video.

Nota: l'API non fornisce un modo per elencare o scoprire in altro modo i commenti rifiutati. Tuttavia, puoi comunque modificare lo stato di moderazione di un commento rifiutato in published se conosci l'ID univoco del commento. Inoltre, una volta che lo stato di moderazione di un commento viene aggiornato a published o rejected, non può essere riportato a heldForReview.

Rimuovere un commento

Questo esempio mostra come eliminare un commento. L'esempio prevede i seguenti passaggi:

  • Passaggio 1: recuperare l'ID commento

    Segui i passaggi precedenti per recuperare un elenco di commenti per un video o un canale. Ricorda che un commento può essere eliminato solo dal suo autore, quindi dovrai confrontare il valore della proprietà snippet.authorChannelId.value di una risorsa comment con l'ID canale dell'utente autenticato per determinare se l'utente può eliminare quel particolare commento.

  • Passaggio 2: eliminare il commento o il thread di commenti

    Una volta identificato l'ID del thread di commenti o del commento che stai eliminando, chiama il metodo comments.delete per eliminare il commento. Utilizza il valore del parametro id per identificare l'ID commento o l'ID thread di commenti che stai eliminando. La richiesta deve essere autorizzata utilizzando OAuth 2.0. Se stai testando questa query in Explorer API, dovrai sostituire un ID commento o un ID thread di commenti valido con il valore parametro id nella richiesta riportata di seguito.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.delete?
    id=COMMENT_ID