Реализация: Комментарии

Метод comments.markAsSpam больше не поддерживается.

В следующих примерах показано, как использовать API данных YouTube (v3) для выполнения функций, связанных с комментариями.

Получить комментарии к видео

Чтобы получить список цепочек комментариев к видео, вызовите метод commentThreads.list . Установите следующие значения параметров в вашем запросе:

  • part : установите значение параметра snippet , если вы хотите получать только комментарии верхнего уровня, или snippet,replies если вы также хотите получать ответы на комментарии верхнего уровня. (Обратите внимание, что ресурс commentThread не обязательно содержит все ответы на комментарий, и вам необходимо использовать метод comments.list , если вы хотите получить все ответы на конкретный комментарий.)

  • videoId : укажите идентификатор видео YouTube, для которого вы получаете комментарии.

Приведенный ниже запрос извлекает комментарии и ответы на комментарии, относящиеся к видео основного выступления на конференции Google I/O 2014 года, которое имеет идентификатор видео wtLJPvx7-ys .

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

Получение комментариев о канале или связанных с ним

API поддерживает возможность получения цепочек комментариев о канале или всех цепочек комментариев, связанных с каналом. В последнем случае API может содержать комментарии о канале или о любом видео канала.

Приведенный ниже запрос извлекает все цепочки комментариев, связанные с каналом GoogleDevelopers на YouTube:

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

Добавление комментария

Вызовите метод commentThreads.insert , чтобы добавить новый комментарий верхнего уровня к каналу или видео. Установите для параметра part запроса значение snippet . Тело запроса представляет собой commentThread resource , в котором свойство snippet.topLevelComment[].snippet[].textOriginal содержит текст комментария. Этот запрос должен быть авторизован с использованием OAuth 2.0.

  • Чтобы добавить комментарий к каналу, используйте свойство snippet.channelId для идентификации канала.
  • Чтобы добавить комментарий к видео, используйте свойство snippet.channelId , чтобы определить канал, на который было загружено видео. Также используйте свойство snippet.videoId для идентификации видео.

Следующий пример запроса добавляет комментарий к видео.

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

Запрос вставляет ресурс, показанный ниже.

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

Ответ на комментарий

Вызовите метод comments.insert , чтобы ответить на комментарий. Установите для параметра part запроса значение snippet . Тело запроса представляет собой comment resource , в котором свойство snippet.textOriginal содержит текст комментария. Свойство snippet.parentId идентифицирует комментарий, связанный с ответом, и его значением является commentThread resource's ID . Этот запрос должен быть авторизован с использованием OAuth 2.0.

В следующем примере запроса добавляется ответ на существующий комментарий.

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

Запрос вставляет ресурс, показанный ниже. Чтобы выполнить запрос в API Explorer, используйте значение свойства snippet.parentId , чтобы идентифицировать комментарий верхнего уровня, связанный с ответом. В ресурсе commentThread свойство snippet.topLevelComment[].id указывает уникальный идентификатор ресурса.

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

Обновление комментария верхнего уровня или ответа на комментарий

Чтобы обновить текст комментария верхнего уровня или ответа на комментарий верхнего уровня, вызовите метод comments.update . Установите значение параметра part snippet . В теле запроса свойство id идентифицирует комментарий, который вы изменяете, и текст нового комментария.

  • В ресурсе commentThread , который идентифицирует комментарий верхнего уровня, свойство snippet.topLevelComment[].id указывает уникальный идентификатор комментария.
  • В ресурсе comment , который может идентифицировать либо комментарий верхнего уровня, либо ответ на комментарий, свойство id указывает уникальный идентификатор комментария.

В приведенном ниже примере запроса обновляется текст существующего комментария.

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

Тело запроса содержит фрагмент JSON, показанный ниже. Чтобы выполнить запрос в API Explorer, установите значение свойства id , чтобы идентифицировать обновляемый комментарий. Запрос должен быть одобрен автором комментария.

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

Установить статус модерации комментария

Чтобы установить статус модерации комментария, вызовите метод comments.setModerationStatus . Это действие используется, когда владелец канала модерирует комментарии к каналу или видео канала.

При вызове этого метода установите значение параметра id , чтобы идентифицировать комментарий. Также установите параметр moderationStatus в желаемый статус. Статус комментария может изменить только владелец канала, на котором появляется комментарий.

  • Шаг 1. Получите комментарии, отправленные на проверку.

    Вызовите метод commentThreads.list , чтобы получить комментарии к каналу или видео. Установите для параметра moderationStatus heldForReview . Ответ API можно использовать для отображения списка комментариев с возможностью владельца канала опубликовать или отклонить каждый из них.

  • Шаг 2. Обновите статус модерации комментария.

    Вызовите метод comments.setModerationStatus , чтобы обновить статус комментария. Используйте значение параметра id , чтобы указать уникальный идентификатор комментария. Установите для параметра moderationStatus значение published или rejected . Если вы отклоняете комментарий, вы также можете установить для параметра banAuthor значение true , чтобы запретить автору оставлять дополнительные комментарии к каналу или видео.

Примечание. API не предоставляет возможности составить список или иным образом обнаружить отклоненные комментарии. Однако вы все равно можете изменить статус модерации отклоненного комментария на published , если известен уникальный идентификатор комментария. Кроме того, как только статус модерации комментария изменится на published » или rejected , статус модерации не может быть изменен обратно на heldForReview .

Удалить комментарий

В этом примере показано, как удалить комментарий. В примере есть следующие шаги:

  • Шаг 1. Получите идентификатор комментария.

    Выполните описанные выше действия, чтобы получить список комментариев к видео или каналу. Помните, что комментарий может быть удален только его автором, поэтому вам нужно будет сравнить значение свойства snippet.authorChannelId.value ресурса comment с идентификатором канала аутентифицированного пользователя, чтобы определить, может ли пользователь удалить этот конкретный комментарий.

  • Шаг 2. Удалите комментарий или ветку комментариев.

    Определив идентификатор ветки комментариев или комментария, который вы удаляете, вызовите метод comments.delete , чтобы удалить этот комментарий. Используйте значение параметра id , чтобы определить идентификатор комментария или идентификатор цепочки комментариев, которую вы удаляете. Запрос должен быть авторизован с использованием OAuth 2.0. Если вы тестируете этот запрос в API Explorer, вам нужно будет заменить действительный идентификатор комментария или идентификатор потока комментариев на значение параметра id в приведенном ниже запросе.

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