註解是使用者對檔案提供的意見回饋,例如文字處理文件讀者建議如何改寫句子。註解分為兩種:錨定註解和未錨定註解。錨定註解會與特定位置 (例如文件特定版本中的文字處理文件句子) 建立關聯。反之,未錨定的註解只會與文件建立關聯。
回覆會附加至留言,代表使用者對留言的回應。使用者可透過 Drive API,在應用程式建立的文件中新增留言和回覆。留言和回覆統稱為「討論」。
在 comments
資源上,您必須為所有方法 (delete
除外) 設定 fields
系統參數,指定要在回應中傳回的欄位。在大多數 Google 雲端硬碟方法中,這項動作僅用於傳回非預設欄位,但對於 comments
資源而言,這是必要動作。如果省略參數,方法會傳回錯誤。詳情請參閱「傳回特定欄位」。
新增未錨定的註解
如要在文件中新增未錨定的註解,請使用 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
欄位。
應用程式解決留言問題時,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
參數呼叫create
方法、包含留言的comments
資源,以及包含revisionID
(r
) 和區域 (a
) 的 JSON 錨點字串。
定義區域的方式取決於您處理的文件內容類型。詳情請參閱「定義區域」。
定義區域
如先前所述,JSON 錨點字串包含 revisionID
(r
) 和區域 (a
)。區域 (a
) 是包含區域分類器的 JSON 陣列,用於指定註解的錨定格式和位置。分類器可以是圖片的二維矩形、文件中的一行文字,或是影片中的一段時間。如要定義區域,請選取與要錨定的內容類型相符的區域分類器。舉例來說,如果內容是文字,您可能會使用 txt
或 line
區域分類器。
如需 Drive API 中的區域分類器清單,請參閱區域分類器。
以下範例顯示的 JSON 錨點字串,可將註解錨定至文件兩個不同區域的行:
- 第一個區域從第 12 行 (
'n':12
) 開始,延伸三行 ('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
欄位更新留言。
comments
資源中的布林值 resolved
欄位為唯讀。如要解決留言,只能回覆留言。詳情請參閱「解決留言」。
這個方法會傳回 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