评论是用户对文件提供的反馈,例如,文字处理文档的读者建议如何重述某个句子。注释分为两种:锚定注释和非锚定注释。锚定注释与文档的特定版本中的特定位置(例如文字处理文档中的某个句子)相关联。反之,未锚定的评论只与文档相关联。
回复附加在评论中,表示用户对评论的回应。借助 Drive API,用户可以对您的应用创建的文档添加评论和回复。评论及其回复统称为讨论。
在调用 comments
资源上列出的每个方法时,必须设置 fields
参数才能列出要在响应中返回的字段。如果您省略此参数,该方法会返回错误。如需返回您所需的确切字段,请参阅返回特定字段。
添加未锚定的评论
如需向文档添加非锚定注释,请使用 fileId
参数和包含注释的 comments
资源调用 create()
方法。
评论会以纯文本形式插入,但响应正文会提供一个 htmlContent
字段,其中包含经过格式设置以供显示的内容。
添加对评论的回复
如需针对评论添加回复,请对 replies
资源使用 replies.create()
方法,并附带 fileId
和 commentId
参数。请求正文使用 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." }
解决评论
您只能通过回复评论来解决评论问题。
如需解决评论,请对 replies
资源使用 replies.create()
方法,并使用 fileId
和 commentId
参数。
请求正文使用 action
字段来解析评论。您还可以设置 content
字段,以添加用于关闭评论的回复。
评论解决后,云端硬盘会将评论资源标记为 resolved: true
。与已删除的评论不同,已解决的评论可以包含 htmlContent
或 content
字段。
当您的应用解决评论时,界面应指明该评论已得到处理。例如,您的应用可能会:
- 禁止进一步回复,并使所有之前的回复以及原始评论变暗。
- 隐藏已解决的评论。
显示示例
请求
在此示例中,我们提供了 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 数组,其中包含区域分类器,用于指定注释的格式和锚定位置。分类器可以是图片的二维矩形、文档中的一行文本,或视频中的一段时长。如需定义区域,请选择与您尝试锚定的类型的内容相匹配的区域分类器。例如,如果您的内容是文本,您可能需要使用 txt
或 line
区域分类器。
如需查看 Drive API 中的地区分类器列表,请参阅地区分类器。
以下示例显示了一个 JSON 锚点字符串,用于将注释锚定到文档中两个单独区域中的行:
- 第一个区域从第 12 行 (
'n':12
) 开始,延伸到第 15 行 ('l':3
)。 - 第二个区域仅涵盖第 18 行 (
'n':18, 'l':1
`)。
{
'r': 'REVISION_ID',
'a': [
{
'line':
{
'n': 12,
'l': 3,
}
},
{
'line':
{
'n': 18,
'l': 1,
}
}]
}
将 REVISION_ID 替换为 head
或特定修订版的 ID。
获取评论
如需获取文件的评论,请对 comments
资源使用 get()
方法,并使用 fileId
和 commentId
参数。如果您不知道评论 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
列出评论
如需列出文件的评论,请对 comments
资源使用 list()
方法,并附带 fileId
参数。该方法会返回评论列表。
传递以下查询参数可自定义评论的分页或过滤条件:
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)
更新评论
如需更新文件的评论,请对 comments
资源使用 update()
方法,并使用 fileId
和 commentId
参数。请求正文使用 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." }
删除评论
如需删除文件的评论,请对 comments
资源使用 delete()
方法,并使用 fileId
和 commentId
参数。
删除评论后,云端硬盘会将评论资源标记为 deleted: true
。已删除的评论不包含 htmlContent
或 content
字段。
显示示例
请求
在此示例中,我们提供了 fileId
和 commentId
路径参数。
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID