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

コメントは、文書の閲覧者が文の言い換え方法を提案するなど、ファイルに関してユーザーが入力するフィードバックです。コメントには、アンカー コメントとアンカー コメントの 2 種類があります。アンカー コメントは、文書内の特定のバージョン内の特定の場所(文書内の文章など)に関連付けられます。反対に、固定されていないコメントは単にドキュメントに関連付けられます。

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

固定されていないコメントを追加

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

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

コメントに返信する

コメントに返信を追加するには、コメント、fileId パラメータ、返信を含む reply リソースを指定して replies.create メソッドを呼び出します。

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

ドキュメントの最新の版にアンカー コメントを追加する

コメントを追加するときに、ファイル内の特定のリージョンに固定することをおすすめします。アンカーは、コメントによって参照されるファイル内のリビジョンとリージョンを定義します。comments リソースは、anchor フィールドを JSON 文字列として定義します。

固定コメントを追加するには:

  1. (省略可)revisions.list メソッドを呼び出して、ドキュメントのすべての revisionID を一覧表示します。この手順は、最新リビジョン以外のリビジョンにコメントを固定する場合にのみ行ってください。最新のリビジョンを使用する場合は、revisionIDhead を使用します。

  2. fileID パラメータ、コメントを含む comments リソース、revisionIDr)とリージョン(a)を含む JSON アンカー文字列を指定して、comments.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 に置き換えます。

コメントを解決する

コメントに対処したら、comment.update メソッドを使用して comments リソースの resolved プロパティを true に設定します。

アプリが resolved プロパティを true に設定すると、コメントに対応することが UI に表示されます。たとえば、アプリは次のようなものです。

  • これ以上の返信を禁止し、以前の返信と元のコメントをすべて非表示にします。
  • 解決済みのコメントを非表示にする。

コメントを削除する

コメントを削除するには、comments.delete メソッドを使用します。コメントが削除されると、ドライブはコメント リソースを "deleted": "true" としてマークします。

コメントを一覧表示する

コメントを一覧表示するには、comments.list メソッドを使用します。削除されたコメントを結果に含める場合は、includedDeleted フィールドを true に設定します。