註解是使用者針對檔案提供的意見回饋,例如文字處理文件的讀者建議如何改寫句子。註解分為兩種類型:錨定註解和非錨定註解。錨定註解會與特定位置 (例如文字處理文件中的句子) 建立關聯,該位置位於文件的特定版本中。相反地,未錨定的註解只會與文件相關聯。
回覆會附加至留言,代表使用者對留言的回應。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
欄位。
當應用程式解決留言時,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 陣列,可指定註解的錨點格式和位置。分類器可能是圖片的二維矩形、文件中的一行文字,或影片中的一段時間。如要定義區域,請選取與要錨定的內容類型相符的區域分類器。舉例來說,如果您的內容是文字,您可能會使用 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
:從先前 list 呼叫收到的頁面權杖。提供這個符記即可擷取後續網頁。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