管理留言和回覆

註解是使用者針對檔案提供的意見回饋,例如文字處理文件的讀者建議如何改寫句子。註解分為兩種類型:錨定註解非錨定註解。錨定註解會與特定位置 (例如文字處理文件中的句子) 建立關聯,該位置位於文件的特定版本中。相反地,未錨定的註解只會與文件相關聯。

回覆會附加至留言,代表使用者對留言的回應。Drive API 可讓使用者在應用程式建立的文件中新增註解和回覆。註解和回覆統稱為「討論」

呼叫 comments 資源上列出的每個方法時,必須設定 fields 參數,才能列出回應中要傳回的欄位。如果省略參數,方法會傳回錯誤。如要傳回所需的確切欄位,請參閱「傳回特定欄位」一文。

新增未錨定的註解

如要在文件中加入未錨定的註解,請使用 fileId 參數和含有註解的 comments 資源,呼叫 create() 方法。

註解會以純文字插入,但回應主體會提供 htmlContent 欄位,其中包含格式化供顯示的內容。

新增回覆留言

如要新增留言回覆,請在 replies 資源上使用 replies.create() 方法,並搭配 fileIdcommentId 參數。要求主體會使用 content 欄位新增回覆。

回覆會以純文字插入,但回應主體會提供 htmlContent 欄位,其中包含格式化供顯示的內容。

這個方法會傳回 fields 欄位中列出的欄位。

顯示範例

要求

在本範例中,我們提供 fileIdcommentId 路徑參數和多個欄位。

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() 方法,並搭配 fileIdcommentId 參數。

要求主體會使用 action 欄位解析留言。您也可以設定 content 欄位,新增可關閉留言的回覆。

註解解決後,雲端硬碟會將註解資源標示為 resolved: true。與已刪除的註解不同,已解決的註解可以包含 htmlContentcontent 欄位。

當應用程式解決留言時,UI 應會顯示已處理留言。舉例來說,您的應用程式可能會:

  • 禁止進一步回覆,並將所有先前的回覆和原始留言調暗。
  • 隱藏已解決的註解。

顯示範例

要求

在本範例中,我們提供 fileIdcommentId 路徑參數和多個欄位。

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 字串。

如要新增錨定註解,請按照下列步驟操作:

  1. (選用) 呼叫 revisions.list() 方法,即可列出文件的每個 revisionID。只有在您想將註解繫結至最新修訂版本以外的修訂版本時,才需要執行這個步驟。如果您想使用最新修訂版本,請為 revisionID 使用 head

  2. 使用 fileID 參數、包含註解的 comments 資源,以及包含 revisionID (r) 和區域 (a) 的 JSON 錨點字串,呼叫 create() 方法。

定義區域的方式取決於您使用的文件內容類型。詳情請參閱「定義區域」。

定義區域

如先前所述,JSON 錨點字串包含 revisionID (r) 和區域 (a)。區域 (a) 是包含區域分類器的 JSON 陣列,可指定註解的錨點格式和位置。分類器可能是圖片的二維矩形、文件中的一行文字,或影片中的一段時間。如要定義區域,請選取與要錨定的內容類型相符的區域分類器。舉例來說,如果您的內容是文字,您可能會使用 txtline 區域分類器。

如需查看 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() 方法,並搭配 fileIdcommentId 參數。如果您不知道留言 ID,可以使用 list() 方法列出所有留言

這個方法會傳回 comments 資源的例項。

如要在結果中加入已刪除的留言,請將 includedDeleted 查詢參數設為 true

顯示範例

要求

在本範例中,我們提供 fileIdcommentId 路徑參數和多個欄位。

GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved

可列出註解

如要列出檔案的註解,請在 comments 資源上使用 list() 方法,並搭配 fileId 參數。這個方法會傳回註解清單。

傳遞下列查詢參數,即可自訂分頁或篩選留言:

  • includeDeleted:設為 true 即可納入已刪除的留言。已刪除的註解不含 htmlContentcontent 欄位。

  • 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() 方法,並搭配 fileIdcommentId 參數。要求主體會使用 content 欄位更新註解。

這個方法會傳回 fields 查詢參數中列出的欄位。

顯示範例

要求

在本範例中,我們提供 fileIdcommentId 路徑參數和多個欄位。

PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment

要求主體

{
  "content": "This comment is now updated."
}

刪除留言

如要刪除檔案上的註解,請在 comments 資源上使用 delete() 方法,並搭配 fileIdcommentId 參數。

刪除註解後,雲端硬碟會將註解資源標示為 deleted: true。刪除的留言不會包含 htmlContentcontent 欄位。

顯示範例

要求

在本範例中,我們提供 fileIdcommentId 路徑參數。

DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID