管理留言和回覆

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

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

comments 資源上,您必須為所有方法 (delete 除外) 設定 fields 系統參數,指定要在回應中傳回的欄位。在大多數 Google 雲端硬碟方法中,這項動作僅用於傳回非預設欄位,但對於 comments 資源而言,這是必要動作。如果省略參數,方法會傳回錯誤。詳情請參閱「傳回特定欄位」。

新增未錨定的註解

如要在文件中新增未錨定的註解,請使用 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 參數呼叫 create 方法、包含留言的 comments 資源,以及包含 revisionID (r) 和區域 (a) 的 JSON 錨點字串。

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

定義區域

如先前所述,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:屬於接收自前一個清單呼叫的網頁權杖。提供此權杖即可擷取後續網頁。

  • 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 欄位更新留言。

comments 資源中的布林值 resolved 欄位為唯讀。如要解決留言,只能回覆留言。詳情請參閱「解決留言」。

這個方法會傳回 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