Implémentation: commentaires

La méthode comments.markAsSpam n'est plus compatible.

Les exemples suivants montrent comment utiliser l'API YouTube Data (v3) pour exécuter des fonctions liées aux commentaires.

Récupérer les commentaires d'une vidéo

Pour récupérer la liste des fils de commentaires d'une vidéo, appelez la méthode commentThreads.list. Définissez les valeurs de paramètre suivantes dans votre requête :

  • part : définissez la valeur du paramètre sur snippet si vous ne souhaitez récupérer que les commentaires de premier niveau, ou sur snippet,replies si vous souhaitez également récupérer les réponses aux commentaires de premier niveau. (Notez qu'une ressource commentThread ne contient pas nécessairement toutes les réponses à un commentaire. Vous devez utiliser la méthode comments.list si vous souhaitez récupérer toutes les réponses à un commentaire spécifique.)

  • videoId : spécifiez l'ID vidéo YouTube pour laquelle vous récupérez les commentaires.

La requête ci-dessous récupère les commentaires et les réponses aux commentaires liés à la vidéo du discours d'ouverture de la conférence Google I/O 2014, dont l'ID vidéo est wtLJPvx7-ys.

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

Récupérer les commentaires concernant une chaîne ou associés à une chaîne

L'API permet de récupérer les fils de commentaires concernant une chaîne ou de récupérer tous les fils de commentaires associés à une chaîne. Dans ce dernier cas, l'API peut contenir des commentaires sur la chaîne ou sur l'une de ses vidéos.

La requête ci-dessous récupère tous les fils de commentaires associés à la chaîne YouTube GoogleDevelopers :

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

Ajout d'un commentaire…

Appelez la méthode commentThreads.insert pour ajouter un commentaire de premier niveau à une chaîne ou à une vidéo. Définissez la valeur du paramètre part de la requête sur snippet. Le corps de la requête est une commentThread resource dans laquelle la propriété snippet.topLevelComment[].snippet[].textOriginal contient le texte du commentaire. Cette requête doit être autorisée à l'aide d'OAuth 2.0.

  • Pour ajouter un commentaire à une chaîne, utilisez la propriété snippet.channelId pour identifier la chaîne.
  • Pour ajouter un commentaire à une vidéo, utilisez la propriété snippet.channelId pour identifier la chaîne qui a mis en ligne la vidéo. Utilisez également la propriété snippet.videoId pour identifier la vidéo.

L'exemple de requête suivant ajoute un commentaire à une vidéo.

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

La requête insère la ressource affichée ci-dessous.

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

Répondre à un commentaire

Appelez la méthode comments.insert pour répondre à un commentaire. Définissez la valeur du paramètre part de la requête sur snippet. Le corps de la requête est une comment resource dans laquelle la propriété snippet.textOriginal contient le texte du commentaire. La propriété snippet.parentId identifie le commentaire associé à la réponse, et sa valeur est un commentThread resource's ID. Cette requête doit être autorisée à l'aide d'OAuth 2.0.

L'exemple de requête suivant ajoute une réponse à un commentaire existant.

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

La requête insère la ressource affichée ci-dessous. Pour exécuter la requête dans APIs Explorer, utilisez la valeur de la propriété snippet.parentId pour identifier le commentaire de premier niveau associé à la réponse. Dans une ressource commentThread, la propriété snippet.topLevelComment[].id spécifie l'identifiant unique de la ressource.

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

Modifier un commentaire de premier niveau ou une réponse à un commentaire

Pour modifier le texte d'un commentaire de premier niveau ou d'une réponse à un commentaire de premier niveau, appelez la méthode comments.update. Définissez la valeur du paramètre part sur snippet. Dans le corps de la requête, la propriété id identifie le commentaire que vous modifiez et le nouveau texte du commentaire.

  • Dans une ressource commentThread, qui identifie un commentaire de premier niveau, la propriété snippet.topLevelComment[].id spécifie l'identifiant unique du commentaire.
  • Dans une ressource comment, qui peut identifier un commentaire de premier niveau ou une réponse à un commentaire, la propriété id spécifie l'identifiant unique du commentaire.

L'exemple de requête ci-dessous modifie le texte d'un commentaire existant.

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

Le corps de la requête contient l'extrait JSON affiché ci-dessous. Pour exécuter la requête dans APIs Explorer, définissez la valeur de la propriété id pour identifier le commentaire que vous modifiez. La requête doit être autorisée par l'auteur du commentaire.

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

Définir l'état de modération d'un commentaire

Pour définir l'état de modération d'un commentaire, appelez la méthode comments.setModerationStatus. Cette action est utilisée lorsqu'un propriétaire de chaîne modère les commentaires sur la chaîne ou les vidéos de la chaîne.

Lorsque vous appelez cette méthode, définissez la valeur du paramètre id pour identifier le commentaire. Définissez également le paramètre moderationStatus sur l'état souhaité. L'état d'un commentaire ne peut être modifié que par le propriétaire de la chaîne sur laquelle il apparaît.

  • Étape 1 : Récupérer les commentaires en attente d'examen

    Appelez la méthode commentThreads.list pour récupérer les commentaires de la chaîne ou de la vidéo. Définissez la valeur du paramètre moderationStatus sur heldForReview. La réponse de l'API peut être utilisée pour afficher une liste de commentaires avec une option permettant au propriétaire de la chaîne de publier ou de refuser chacun d'eux.

  • Étape 2 : Modifier l'état de modération d'un commentaire

    Appelez la méthode comments.setModerationStatus pour modifier l'état du commentaire. Utilisez la valeur du paramètre id pour spécifier l'identifiant unique du commentaire. Définissez le paramètre moderationStatus sur published ou rejected. Si vous refusez un commentaire, vous pouvez également définir le paramètre banAuthor sur true pour empêcher l'auteur de publier d'autres commentaires sur la chaîne ou la vidéo.

Remarque : L'API ne permet pas de lister ni de découvrir les commentaires refusés. Toutefois, vous pouvez toujours modifier l'état de modération d'un commentaire refusé sur published si vous connaissez son identifiant unique. De plus, une fois que l'état de modération d'un commentaire est défini sur published ou rejected, il ne peut plus être modifié sur heldForReview.

Supprimer un commentaire

Cet exemple montre comment supprimer un commentaire. Il comporte les étapes suivantes :

  • Étape 1 : Récupérer l'ID du commentaire

    Suivez les étapes ci-dessus pour récupérer la liste des commentaires d'une vidéo ou d'une chaîne. N'oubliez pas qu'un commentaire ne peut être supprimé que par son auteur. Vous devrez donc comparer la valeur de la propriété snippet.authorChannelId.value d'une ressource comment à l'ID de la chaîne de l'utilisateur authentifié pour déterminer si l'utilisateur peut supprimer ce commentaire.

  • Étape 2 : Supprimer le commentaire ou le fil de discussion

    Une fois que vous avez identifié l'ID du fil de commentaires ou du commentaire que vous supprimez, appelez la méthode comments.delete pour supprimer ce commentaire. Utilisez la valeur du paramètre id pour identifier l'ID du commentaire ou du fil de discussion que vous supprimez. La requête doit être autorisée à l'aide d'OAuth 2.0. Si vous testez cette requête dans APIs Explorer, vous devrez remplacer la valeur du paramètre id dans la requête ci-dessous par un ID de commentaire ou de fil de discussion valide.

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