댓글 및 답글 관리

댓글은 파일에 관한 사용자 제공 의견입니다(예: 워드프로세서 문서를 읽는 사용자가 문장 표현을 바꾸는 방법을 제안하는 경우). 주석에는 앵커 주석앵커 없는 주석의 두 가지 유형이 있습니다. 고정된 주석은 특정 버전의 문서 내에서 특정 위치(예: 워드프로세서 문서의 문장)와 연결됩니다. 반대로 고정되지 않은 댓글은 문서와 연결되어 있을 뿐입니다.

답글은 댓글에 첨부되며 댓글에 대한 사용자의 응답을 나타냅니다. Drive API를 사용하면 사용자가 앱에서 만든 문서에 댓글과 답글을 추가할 수 있습니다. 답글이 있는 댓글을 통칭하여 대화라고 합니다.

comments 리소스에 나열된 모든 메서드를 호출할 때 응답에 반환할 필드를 나열하려면 fields 매개변수를 설정해야 합니다. 매개변수를 생략하면 메서드에서 오류를 반환합니다. 필요한 필드를 정확하게 반환하려면 특정 필드 반환을 참고하세요.

고정되지 않은 댓글 추가

문서에 고정되지 않은 주석을 추가하려면 fileId 매개변수와 주석이 포함된 comments 리소스를 사용하여 create() 메서드를 호출합니다.

댓글은 일반 텍스트로 삽입되지만 응답 본문에는 표시할 수 있도록 형식이 지정된 콘텐츠가 포함된 htmlContent 필드가 제공됩니다.

댓글에 답글 추가하기

댓글에 답글을 추가하려면 fileIdcommentId 매개변수를 사용하여 replies 리소스의 replies.create() 메서드를 사용합니다. 요청 본문은 content 필드를 사용하여 답장을 추가합니다.

답장은 일반 텍스트로 삽입되지만 응답 본문에는 표시할 형식의 콘텐츠가 포함된 htmlContent 필드가 제공됩니다.

이 메서드는 fields 필드에 나열된 필드를 반환합니다.

예 보기

요청

이 예에서는 fileIdcommentId 경로 매개변수와 여러 필드를 제공합니다.

POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment

요청 본문

{
  "content": "This is a reply to a comment."
}

댓글 해결하기

댓글은 댓글에 답글을 게시하여만 해결할 수 있습니다.

주석을 해결하려면 replies 리소스에서 fileIdcommentId 매개변수를 사용하여 replies.create() 메서드를 사용합니다.

요청 본문은 action 필드를 사용하여 댓글을 확인합니다. content 필드를 설정하여 댓글을 닫는 답글을 추가할 수도 있습니다.

댓글이 해결되면 Drive에서 댓글 리소스를 resolved: true로 표시합니다. 삭제된 댓글과 달리 해결된 댓글에는 htmlContent 또는 content 필드가 포함될 수 있습니다.

앱에서 댓글을 해결하면 UI에 댓글이 해결되었음을 나타내야 합니다. 예를 들어 앱이 다음과 같은 경우

  • 더 이상 답장을 허용하지 않고 이전의 모든 답글과 원래 댓글을 어둡게 표시합니다.
  • 해결된 댓글 숨기기

예 보기

요청

이 예에서는 fileIdcommentId 경로 매개변수와 여러 필드를 제공합니다.

POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment

요청 본문

{
  "action": "resolve",
  "content": "This comment has been resolved."
}

문서의 최신 버전에 고정 댓글 추가하기

주석을 추가할 때는 파일의 특정 영역에 고정하는 것이 좋습니다. 앵커는 주석이 참조하는 파일의 파일 버전 및 영역을 정의합니다. comments 리소스는 anchor 필드를 JSON 문자열로 정의합니다.

고정 댓글을 추가하려면 다음 단계를 따르세요.

  1. (선택사항) revisions.list() 메서드를 호출하여 문서의 모든 revisionID를 나열합니다. 최신 버전이 아닌 다른 버전에 주석을 고정하려는 경우에만 이 단계를 따르세요. 최신 버전을 사용하려면 revisionIDhead를 사용합니다.

  2. fileID 매개변수, 주석이 포함된 comments 리소스, revisionID(r) 및 지역 (a)이 포함된 JSON 앵커 문자열을 사용하여 create() 메서드를 호출합니다.

영역을 정의하는 방법은 작업 중인 문서 콘텐츠 유형에 따라 다릅니다. 자세한 내용은 리전 정의를 참고하세요.

리전 정의

앞에서 언급한 대로 JSON 앵커 문자열에는 revisionID (r) 및 지역 (a)이 포함됩니다. 지역 (a)은 주석이 고정된 형식과 위치를 지정하는 지역 분류자가 포함된 JSON 배열입니다. 분류기는 이미지의 2차원 직사각형, 문서의 텍스트 줄 또는 동영상의 시간 길이일 수 있습니다. 지역을 정의하려면 연결하려는 콘텐츠 유형과 일치하는 지역 분류 기준을 선택합니다. 예를 들어 콘텐츠가 텍스트인 경우 txt 또는 line 지역 분류기를 사용하게 됩니다.

Drive API의 지역 분류자 목록은 지역 분류자를 참고하세요.

다음 예는 문서의 두 개 별도 영역의 줄에 주석을 고정하는 JSON 앵커 문자열을 보여줍니다.

  • 첫 번째 영역은 12번 줄 ('n':12)에서 시작하여 3줄('l':3)까지 확장됩니다.
  • 두 번째 영역은 18번 줄 ('n':18, 'l':1`)만 포함합니다.
    {
      'r': 'REVISION_ID',
      'a': [
      {
        'line':
        {
          'n': 12,
          'l': 3,
        }
      },
      {
        'line':
        {
          'n': 18,
          'l': 1,
        }
      }]
    }

REVISION_IDhead 또는 특정 버전의 ID로 바꿉니다.

댓글 가져오기

파일의 주석을 가져오려면 comments 리소스의 get() 메서드를 fileIdcommentId 매개변수와 함께 사용합니다. 댓글 ID를 모르는 경우 list() 메서드를 사용하여 모든 댓글을 나열할 수 있습니다.

이 메서드는 comments 리소스의 인스턴스를 반환합니다.

결과에 삭제된 댓글을 포함하려면 includedDeleted 쿼리 매개변수를 true로 설정합니다.

예 보기

요청

이 예에서는 fileIdcommentId 경로 매개변수와 여러 필드를 제공합니다.

GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved

댓글 나열

파일의 주석을 나열하려면 comments 리소스에서 fileId 매개변수와 함께 list() 메서드를 사용합니다. 이 메서드는 주석 목록을 반환합니다.

다음 쿼리 매개변수를 전달하여 댓글의 페이징을 맞춤설정하거나 댓글을 필터링합니다.

  • includeDeleted: 삭제된 댓글을 포함하려면 true로 설정합니다. 삭제된 주석에는 htmlContent 또는 content 필드가 포함되지 않습니다.

  • pageSize: 페이지당 반환할 최대 댓글 수입니다.

  • pageToken: 이전 목록 호출에서 수신된 페이지 토큰입니다. 후속 페이지를 검색하려면 이 토큰을 입력합니다.

  • startModifiedTime: 결과 주석의 modifiedTime 필드의 최소 값입니다.

예 보기

요청

이 예에서는 fileId 경로 매개변수, includeDeleted 쿼리 매개변수, 여러 필드를 제공합니다.

GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments?includeDeleted=true&fields=(id,comment,kind,modifiedTime,resolved)

댓글 업데이트

파일의 주석을 업데이트하려면 fileIdcommentId 매개변수를 사용하여 comments 리소스의 update() 메서드를 사용합니다. 요청 본문은 content 필드를 사용하여 주석을 업데이트합니다.

이 메서드는 fields 쿼리 매개변수에 나열된 필드를 반환합니다.

예 보기

요청

이 예에서는 fileIdcommentId 경로 매개변수와 여러 필드를 제공합니다.

PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment

요청 본문

{
  "content": "This comment is now updated."
}

댓글 삭제

파일의 주석을 삭제하려면 comments 리소스에서 fileIdcommentId 매개변수를 사용하여 delete() 메서드를 사용합니다.

댓글이 삭제되면 Drive에서 댓글 리소스를 deleted: true로 표시합니다. 삭제된 댓글에는 htmlContent 또는 content 필드가 포함되지 않습니다.

예 보기

요청

이 예에서는 fileIdcommentId 경로 매개변수를 제공합니다.

DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID