Implementación: Comentarios

Ya no se admite el método comments.markAsSpam.

Los siguientes ejemplos muestran cómo usar la API de datos de YouTube (v3) para realizar funciones relacionadas con los comentarios.

Recupera los comentarios de un video

Para recuperar una lista de conversaciones de un video, llama al método commentThreads.list. Configura los siguientes valores de parámetros en tu solicitud:

  • part: Establece el valor del parámetro en snippet si solo deseas recuperar comentarios de nivel superior o en snippet,replies si también deseas recuperar respuestas a comentarios de nivel superior. (Ten en cuenta que un recurso commentThread no necesariamente contiene todas las respuestas a un comentario, y debes utilizar el método comments.list si deseas recuperar todas las respuestas para un comentario en particular).

  • videoId: Especifica el ID de video de YouTube del video para el que recuperas comentarios.

La solicitud que aparece a continuación recupera los comentarios y las respuestas a comentarios relacionados con el video del discurso de apertura de la conferencia Google I/O de 2014, que tiene el ID de video wtLJPvx7-ys.

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

Recuperar comentarios sobre un canal o asociados con él

La API admite la capacidad de recuperar todas las conversaciones de comentarios acerca de un canal o de recuperar todas las conversaciones de comentarios asociadas con un canal. En el último caso, la API podría contener comentarios sobre el canal o sobre cualquiera de los videos del canal.

La solicitud que aparece a continuación recupera todas las conversaciones de comentarios asociadas con el canal de YouTube de GoogleDevelopers:

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

Agregando un comentario

Usa el método commentThreads.insert para agregar un comentario nuevo de nivel superior a un canal o video. Establece el valor del parámetro part de la solicitud en snippet. El cuerpo de la solicitud es una commentThread resource en la que la propiedad snippet.topLevelComment[].snippet[].textOriginal contiene el texto del comentario. Esta solicitud se debe autorizar mediante OAuth 2.0.

  • Para agregar un comentario a un canal, usa la propiedad snippet.channelId para identificar el canal.
  • Para agregar un comentario a un video, usa la propiedad snippet.channelId para identificar el canal que lo subió. También usa la propiedad snippet.videoId para identificar el video.

El siguiente ejemplo de solicitud agrega un comentario a un video.

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

La solicitud inserta el recurso que se muestra a continuación.

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

Cómo responder un comentario

Llama al método comments.insert para responder un comentario. Establece el valor del parámetro part de la solicitud en snippet. El cuerpo de la solicitud es una comment resource en la que la propiedad snippet.textOriginal contiene el texto del comentario. La propiedad snippet.parentId identifica el comentario asociado con la respuesta y su valor es commentThread resource's ID. Esta solicitud se debe autorizar mediante OAuth 2.0.

El siguiente ejemplo de solicitud agrega una respuesta a un comentario existente.

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

La solicitud inserta el recurso que se muestra a continuación. Para ejecutar la solicitud en el Explorador de APIs, usa el valor de la propiedad snippet.parentId a fin de identificar el comentario de nivel superior asociado con la respuesta. En un recurso commentThread, la propiedad snippet.topLevelComment[].id especifica el ID único del recurso.

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

Cómo actualizar un comentario de nivel superior o una respuesta a un comentario

Para actualizar el texto de un comentario de nivel superior o de una respuesta a uno de nivel superior, llama al método comments.update. Establece el valor del parámetro part en snippet. En el cuerpo de la solicitud, la propiedad id identifica el comentario que estás modificando y el texto del comentario nuevo.

  • En un recurso commentThread, que identifica un comentario de nivel superior, la propiedad snippet.topLevelComment[].id especifica el ID único del comentario.
  • En un recurso comment, que puede identificar un comentario de nivel superior o una respuesta a un comentario, la propiedad id especifica el ID único del comentario.

La solicitud de ejemplo que aparece a continuación actualiza el texto de un comentario existente.

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

El cuerpo de la solicitud contiene el fragmento JSON que se muestra a continuación. Para ejecutar la solicitud en el Explorador de APIs, establece el valor de la propiedad id para identificar el comentario que estás actualizando. La solicitud debe estar autorizada por el autor del comentario.

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

Cómo establecer el estado de moderación de un comentario

Para establecer el estado de moderación de un comentario, llama al método comments.setModerationStatus. Esta acción se usa cuando el propietario de un canal modera los comentarios del canal o de sus videos.

Cuando llames a este método, configura el valor del parámetro id para identificar el comentario. Establece también el parámetro moderationStatus en el estado deseado. Solo el propietario del canal en el que aparece un comentario puede ajustar su estado.

  • Paso 1: Recupera los comentarios que están en espera de revisión

    Invoca el método commentThreads.list para recuperar comentarios del canal o video. Establece el valor del parámetro moderationStatus en heldForReview. La respuesta de la API se puede usar para mostrar una lista de comentarios con una opción para que el propietario del canal los publique o rechace cada uno.

  • Paso 2: Actualiza el estado de moderación de un comentario

    Llama al método comments.setModerationStatus para actualizar el estado del comentario. Usa el valor del parámetro id para especificar el ID único del comentario. Establece el parámetro moderationStatus en published o rejected. Si rechazas un comentario, también puedes establecer el parámetro banAuthor en true para evitar que el autor realice comentarios adicionales en el canal o video.

Nota: La API no proporciona una forma de enumerar o descubrir comentarios rechazados. Sin embargo, puedes cambiar el estado de moderación de un comentario rechazado a published si se conoce su ID único. Además, una vez que se actualiza el estado de moderación de un comentario a published o rejected, no se puede volver a cambiar a heldForReview.

Cómo quitar un comentario

En este ejemplo, se muestra cómo borrar un comentario. El ejemplo consta de los siguientes pasos:

  • Paso 1: Recupera el ID de comentario

    Sigue los pasos anteriores para recuperar una lista de comentarios de un video o canal. Recuerda que solo el autor de un comentario puede borrar un comentario, por lo que tendrás que comparar el valor de la propiedad snippet.authorChannelId.value de un recurso comment con el ID del canal del usuario autenticado para determinar si el usuario puede borrar ese comentario en particular.

  • Paso 2: Borra el comentario o la conversación de comentarios

    Una vez que hayas identificado el ID de la conversación o el comentario que borrarás, llama al método comments.delete para borrarlo. Usa el valor del parámetro id para identificar el ID de comentario o el ID de conversación de comentarios que borrarás. La solicitud se debe autorizar mediante OAuth 2.0. Si pruebas esta consulta en el Explorador de APIs, deberás sustituir un ID de comentario o un ID de conversación de comentarios válido por el valor del parámetro id en la siguiente solicitud.

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