コメントは、ファイルに関するユーザー提供のフィードバックです。たとえば、ワード プロセッシング ドキュメントの読者が文の言い換え方を提案するなどです。コメントには、アンカー付きコメントとアンカーなしコメントの 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 文字列として定義します。
アンカー付きコメントを追加するには:
(省略可)
revisions.list()
メソッドを呼び出して、ドキュメントのすべてのrevisionID
を一覧表示します。この手順は、最新のリビジョン以外のリビジョンにコメントを固定する場合にのみ行います。最新のリビジョンを使用する場合は、revisionID
にhead
を使用します。fileID
パラメータ、コメントを含むcomments
リソース、revisionID
(r
)とリージョン(a
)を含む JSON アンカー文字列を指定して、create()
メソッドを呼び出します。
領域の定義方法は、作業するドキュメント コンテンツの種類によって異なります。詳細については、リージョンを定義するをご覧ください。
リージョンを定義する
前述のように、JSON アンカー文字列には revisionID
(r
)とリージョン(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