コメントと返信を管理する

コメントは、ファイルに関するユーザー提供のフィードバックです。たとえば、ワード プロセッシング ドキュメントの読者が文の言い換え方を提案するなどです。コメントには、アンカー付きコメントアンカーなしコメントの 2 種類があります。アンカー付きコメントは、特定のバージョンのドキュメント内の特定の場所(ワープロ ドキュメント内の文など)に関連付けられます。アンカーのないコメントは、ドキュメントに関連付けられているだけです。

返信はコメントに添付され、コメントに対するユーザーの返信を表します。Drive API を使用すると、ユーザーはアプリによって作成されたドキュメントにコメントと返信を追加できます。コメントと返信をまとめてディスカッションと呼びます。

comments リソースにリストされているすべてのメソッドを呼び出すときに、レスポンスで返されるフィールドを一覧表示するには、fields パラメータを設定する必要があります。パラメータを省略すると、メソッドはエラーを返します。必要なフィールドを正確に返すには、特定のフィールドを返すをご覧ください。

アンカーなしのコメントを追加する

アンカーのないコメントをドキュメントに追加するには、fileId パラメータとコメントを含む comments リソースを指定して create() メソッドを呼び出します。

コメントはプレーンテキストとして挿入されますが、レスポンスの本文には、表示用にフォーマットされたコンテンツを含む htmlContent フィールドが用意されています。

コメントに返信を追加する

コメントに返信を追加するには、fileId パラメータと commentId パラメータを指定して replies リソースの replies.create() メソッドを使用します。リクエストの本文で content フィールドを使用してレスポンスを追加します。

返信はプレーンテキストとして挿入されますが、レスポンスの本文には、表示用にフォーマットされたコンテンツを含む htmlContent フィールドが用意されています。

このメソッドは、fields フィールドにリストされているフィールドを返します。

例を表示

リクエスト

この例では、fileId パス パラメータと commentId パス パラメータ、複数のフィールドを指定します。

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."
}

コメントを解決する

コメントを解決するには、コメントに返信を投稿する必要があります。

コメントを解決するには、fileId パラメータと commentId パラメータを使用して、replies リソースの replies.create() メソッドを使用します。

リクエスト本文では、action フィールドを使用してコメントを解決します。content フィールドを設定して、コメントを閉じる返信を追加することもできます。

コメントが解決されると、ドライブはコメント リソースを resolved: true としてマークします。削除されたコメントとは異なり、解決済みのコメントには htmlContent フィールドまたは content フィールドを含めることができます。

アプリがコメントを解決すると、コメントが対処されたことを示す UI が表示されます。たとえば、アプリは次のようなことを行えます。

  • 以降の返信を禁止し、以前の返信と元のコメントをすべて薄くします。
  • 解決済みのコメントを非表示] をクリックします。

例を表示

リクエスト

この例では、fileId パス パラメータと commentId パス パラメータ、複数のフィールドを指定します。

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 リソース、revisionIDr)とリージョン(a)を含む JSON アンカー文字列を指定して、create() メソッドを呼び出します。

領域の定義方法は、作業するドキュメント コンテンツの種類によって異なります。詳細については、リージョンを定義するをご覧ください。

リージョンを定義する

前述のように、JSON アンカー文字列には revisionIDr)とリージョン(a)が含まれています。リージョン(a)は、コメントがアンカーされる形式と位置を指定するリージョン分類子を含む JSON 配列です。分類子は、画像の 2 次元の長方形、ドキュメント内のテキスト行、動画内の時間などです。地域を定義するには、アンカーを設定するコンテンツの種類に一致する地域分類子を選択します。たとえば、コンテンツがテキストの場合は、txt または line リージョン分類子を使用することになります。

Drive API の地域分類子のリストについては、地域分類子をご覧ください。

次の例は、ドキュメントの 2 つの異なる領域の行にコメントをアンカーする JSON アンカー文字列を示しています。

  • 最初の領域は 12 行目('n':12)から始まり、3 行('l':3)にわたっています。
  • 2 番目の領域は、行 18('n':18, 'l':1`)のみを対象としています。
    {
      'r': 'REVISION_ID',
      'a': [
      {
        'line':
        {
          'n': 12,
          'l': 3,
        }
      },
      {
        'line':
        {
          'n': 18,
          'l': 1,
        }
      }]
    }

REVISION_ID は、head または特定のリビジョンの ID に置き換えます。

コメントを取得する

ファイルのコメントを取得するには、fileId パラメータと commentId パラメータを使用して、comments リソースの get() メソッドを使用します。コメント ID がわからない場合は、list() メソッドを使用してすべてのコメントを一覧表示できます。

このメソッドは、comments リソースのインスタンスを返します。

削除されたコメントを結果に含めるには、includedDeleted クエリ パラメータを true に設定します。

例を表示

リクエスト

この例では、fileId パス パラメータと commentId パス パラメータ、複数のフィールドを指定します。

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

コメントの一覧表示

ファイルのコメントを一覧表示するには、fileId パラメータを使用して comments リソースの list() メソッドを使用します。このメソッドはコメントのリストを返します。

次のクエリ パラメータを渡して、コメントのページネーションやフィルタをカスタマイズします。

  • includeDeleted: 削除されたコメントを含めるには true に設定します。削除されたコメントには、htmlContent フィールドまたは content フィールドは含まれません。

  • pageSize: ページごとに返されるコメントの最大数。

  • pageToken: 前の list 呼び出しから受け取ったページトークン。後続のページを取得するには、このトークンを指定します。

  • startModifiedTime: 結果コメントの modifiedTime フィールドの最小値。

例を表示

リクエスト

この例では、fileId パス パラメータ、includeDeleted クエリ パラメータ、複数のフィールドを指定しています。

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

コメントを更新する

ファイルのコメントを更新するには、fileId パラメータと commentId パラメータを使用して、comments リソースの update() メソッドを使用します。リクエスト本文では、content フィールドを使用してコメントを更新します。

このメソッドは、fields クエリ パラメータに指定されたフィールドを返します。

例を表示

リクエスト

この例では、fileId パス パラメータと commentId パス パラメータ、複数のフィールドを指定します。

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

リクエストの本文

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

コメントを削除する

ファイルのコメントを削除するには、fileId パラメータと commentId パラメータを使用して、comments リソースで delete() メソッドを使用します。

コメントが削除されると、ドライブはコメント リソースを deleted: true としてマークします。削除されたコメントには、htmlContent フィールドと content フィールドが含まれません。

例を表示

リクエスト

この例では、fileId パス パラメータと commentId パス パラメータを指定します。

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