要求與回應

本指南將介紹構成 Google 文件 API 的主要要求和回應方法,以及如何批次更新文件。

您可以透過 HTTP 要求叫用 Google 文件 API,也可以在語言專屬用戶端程式庫中叫用方法。這兩者大致相同。

Google 文件 API 會傳回 HTTP 回應,其中通常包含要求調用的結果。使用用戶端程式庫發出要求時,系統會以特定語言傳回回應。

要求方法

文件 API 支援下列方法:

  • documents.create: 建立空白的 Google 文件。

  • documents.get: 傳回指定文件的完整例項。您可以剖析傳回的 JSON,擷取文件內容、格式和其他功能。

  • documents.batchUpdate: 提交要以原子方式套用至文件的編輯要求清單,並傳回結果清單。

documents.getdocuments.batchUpdate 方法需要 documentId 做為參數,才能指定目標文件。documents.create 方法會傳回所建立文件的例項,您可從中讀取 documentId。如要進一步瞭解 documentId,請參閱文件 ID

請注意,您無法使用 documents.get 方法擷取已發布的文件。發布後,公開文件會使用不同的網址格式。嘗試使用網址的新 documentIddocuments.get 方法時,會傳回 404 HTTP 狀態碼回應。無法從發布的網址擷取原始 documentId。如要解決這個問題,可以使用 Drive API 將已發布的文件複製到共用文件,然後改為存取該檔案。詳情請參閱「公開 Google 文件、試算表、簡報和表單」。

批次更新

documents.batchUpdate 方法會採用 request 物件清單,每個物件都會指定要執行的單一要求。舉例來說,您可以先設定段落格式,然後加入內嵌圖片。系統會先驗證每項要求,再套用要求,並按照要求在批次要求中的顯示順序處理要求。

系統會以不可分割的形式套用批次更新中的所有要求。也就是說,如果任何要求無效,整個更新就會失敗,且不會套用任何 (可能相依的) 變更。

部分 documents.batchUpdate 方法會提供回應,說明已套用的要求。這些方法會傳回包含 response 物件清單的回應主體。其他要求則不需要傳回資訊,只要顯示空白回覆即可。回應清單中的物件與對應要求佔用相同的索引順序。

以下是常見的批次要求模式:

requests = []
requests.append(first request)
requests.append(second request)
...

body = ... & requests & ...

...batchUpdate(body)

如要完整瞭解如何批次處理文件 API 呼叫,以及要求和回應類型的documents.batchUpdate參考說明文件,請參閱批次要求最佳做法

批次更新作業

批次更新要求有多種,以下是要求類型的分類。

物件 新增 / 插入 更新 / 更換 刪除
文字 InsertTextRequest ReplaceAllTextRequest
樣式 CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
已命名範圍 CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
圖片 InsertInlineImageRequest ReplaceImageRequest
表格 InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
頁面物件 (包括頁首頁尾) InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest