구현: 댓글

comments.markAsSpam 메서드는 더 이상 지원되지 않습니다.

다음 예에서는 YouTube Data API (v3)를 사용하여 댓글과 관련된 기능을 실행하는 방법을 보여줍니다.

동영상의 댓글 검색

동영상의 댓글 대화목록을 가져오려면 commentThreads.list 메서드를 호출합니다. 요청에 다음 매개변수 값을 설정합니다.

  • part: 최상위 댓글만 검색하려면 매개변수 값을 snippet로, 최상위 댓글에 대한 답글도 검색하려면 snippet,replies로 설정합니다. commentThread 리소스에 댓글에 대한 모든 답글이 포함되는 것은 아니며 특정 댓글의 모든 답글을 가져오려면 comments.list 메서드를 사용해야 합니다.

  • videoId: 댓글을 가져올 동영상의 YouTube 동영상 ID를 지정합니다.

아래 요청은 동영상 ID가 wtLJPvx7-ys인 2014년 Google I/O 컨퍼런스의 기조 연설 동영상과 관련된 댓글 및 댓글 답글을 가져옵니다.

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 탐색기에서 요청을 실행하려면 snippet.parentId 속성 값을 사용하여 답변과 연결된 최상위 주석을 식별합니다. commentThread 리소스에서 snippet.topLevelComment[].id 속성은 리소스의 고유 ID를 지정합니다.

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

최상위 댓글 또는 댓글 답글 업데이트

최상위 댓글의 텍스트 또는 최상위 댓글에 대한 답글의 텍스트를 업데이트하려면 comments.update 메서드를 호출합니다. part 매개변수의 값을 snippet로 설정합니다. 요청 본문에서 id 속성은 수정 중인 주석과 새 주석 텍스트를 식별합니다.

  • 최상위 주석을 식별하는 commentThread 리소스에서 snippet.topLevelComment[].id 속성은 주석의 고유 ID를 지정합니다.
  • 최상위 댓글 또는 댓글에 대한 답글을 식별할 수 있는 comment 리소스에서 id 속성은 댓글의 고유 ID를 지정합니다.

아래 샘플 요청은 기존 댓글의 텍스트를 업데이트합니다.

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

요청 본문에는 아래와 같은 JSON 스니펫이 포함됩니다. API 탐색기에서 요청을 실행하려면 업데이트하려는 주석을 식별하도록 id 속성의 값을 설정합니다. 댓글 작성자가 요청을 승인해야 합니다.

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

댓글의 검토 상태 설정

댓글의 검토 상태를 설정하려면 comments.setModerationStatus 메서드를 호출합니다. 이 작업은 채널 소유자가 채널 또는 채널의 동영상에 달린 댓글을 검토할 때 사용됩니다.

이 메서드를 호출할 때 id 매개변수의 값을 설정하여 주석을 식별합니다. 또한 moderationStatus 매개변수를 원하는 상태로 설정합니다. 댓글의 상태는 댓글이 표시되는 채널의 소유자만 조정할 수 있습니다.

  • 1단계: 검토를 위해 보류된 댓글 검색하기

    commentThreads.list 메서드를 호출하여 채널 또는 동영상의 댓글을 가져옵니다. moderationStatus 매개변수의 값을 heldForReview로 설정합니다. API 응답은 채널 소유자가 각 댓글을 게시하거나 거부할 수 있는 옵션이 포함된 댓글 목록을 표시하는 데 사용할 수 있습니다.

  • 2단계: 댓글의 검토 상태 업데이트하기

    comments.setModerationStatus 메서드를 호출하여 댓글 상태를 업데이트합니다. id 매개변수의 값을 사용하여 댓글의 고유 ID를 지정합니다. moderationStatus 매개변수를 published 또는 rejected로 설정합니다. 댓글을 거부하는 경우 banAuthor 매개변수를 true로 설정하여 작성자가 채널이나 동영상에 추가 댓글을 작성하지 못하도록 할 수도 있습니다.

참고: API는 거부된 댓글을 나열하거나 검색하는 방법을 제공하지 않습니다. 하지만 댓글의 고유 ID를 알고 있다면 거부된 댓글의 검토 상태를 published로 변경할 수 있습니다. 또한 댓글의 검토 상태가 published 또는 rejected로 업데이트되면 검토 상태를 heldForReview로 다시 변경할 수 없습니다.

댓글 삭제

이 예에서는 댓글을 삭제하는 방법을 보여줍니다. 이 예시에는 다음 단계가 있습니다.

  • 1단계: 댓글 ID 가져오기

    위 단계에 따라 동영상 또는 채널의 댓글 목록을 가져옵니다. 댓글은 작성자만 삭제할 수 있으므로 comment 리소스의 snippet.authorChannelId.value 속성 값을 인증된 사용자의 채널 ID와 비교하여 사용자가 특정 댓글을 삭제할 수 있는지 확인해야 합니다.

  • 2단계: 댓글 또는 댓글 대화목록 삭제하기

    삭제할 댓글 대화목록 또는 댓글의 ID를 확인한 후 comments.delete 메서드를 호출하여 해당 댓글을 삭제합니다. id 매개변수 값을 사용하여 삭제할 댓글 ID 또는 댓글 대화목록 ID를 식별합니다. 요청은 OAuth 2.0을 사용하여 승인되어야 합니다. API 탐색기에서 이 쿼리를 테스트하는 경우 아래 요청에서 id 매개변수 값을 유효한 댓글 ID 또는 댓글 대화목록 ID로 대체해야 합니다.

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