簡介

Google 簡報 API 可讓您建立及修改 Google 簡報檔案。

應用程式可以與 Google 簡報 API 整合,根據使用者和系統提供的資料自動建立精美的簡報投影片。例如,您可以使用資料庫中的客戶詳細資料,將其與預先設計的範本和所選設定選項結合,以手動建立完成的簡報,所需的時間比手動操作少很多。

API 總覽

「簡報」集合提供的方法可讓您取得及更新簡報中的元素。

大多數與簡報 API 搭配使用的工作可能是建立及更新簡報。方法是使用 BatchUpdate 方法;此方法會彙整 Request 物件清單,讓您執行以下動作:

  • 建立簡報
  • 在投影片中新增元素,例如形狀或表格
  • 插入、變更及移除文字
  • 將轉換套用至元素
  • 變更投影片順序

詳情請參閱「批次更新」。請參閱入門指南,瞭解 API 使用方式的簡易端對端範例。

簡報的結構

Slide API 中的簡報由包含頁面元素的頁面組成。

簡報 ID 可以從網址取得:

https://docs.google.com/presentation/d/presentationId/edit

呈現方式 ID 是包含字母、數字和某些特殊字元的字串。以下規則運算式可用來從 Google 試算表網址擷取簡報 ID:

/presentation/d/([a-zA-Z0-9-_]+)

如果您熟悉 Drive API,presentationId 對應的是檔案資源 ID。

網頁和網頁元素是以物件 ID 識別。

Pages

Google 簡報包含下列頁面:

碩士 投影片主投影片會定義預設文字樣式、背景和頁面元素,這些元素會顯示在使用這個主投影片的所有投影片中。所有投影片都必須顯示的網頁元素,都應該新增至主投影片。大多數簡報都有一個主投影片,但有些簡報可能會有多張或完全沒有。
版面配置 版面配置可以當做範本,說明頁面元素在使用版面配置的投影片上預設會如何排列。每個版面配置都會與一個主要版面配置相關聯。
簡報 這些網頁包含您提供給觀眾的內容。 大部分的投影片都是以主投影片和版面配置為基礎。建立每張投影片時,您可以指定要使用哪種版面配置。
附註 這些網頁包含簡報講義的內容,包括包含投影片演講者備忘稿的形狀。每張投影片都有一個對應的附註頁面。只有演講者備忘稿圖案中的文字能使用簡報 API 修改。
筆記主投影片 記事主投影片會定義所有筆記頁面的預設文字樣式和頁面元素。記事主投影片在簡報 API 中處於唯讀狀態。

網頁元素

網頁元素是放置於網頁上的視覺元件。API 會顯示以下幾種類型的頁面元素:

Group 系統會將一組網頁元素視為個別單元。並可一起移動、縮放及旋轉。
形狀 純文字物件,例如矩形、刪節號和文字方塊。形狀可以包含文字,因此是建立投影片時最常使用的頁面元素。
映像檔 圖片已匯入 Google 簡報。
影片 已將影片匯入簡報。
折線圖 視覺線、曲線或連接點。
資料表 內容格線。
文字藝術 視覺文字元素,運作方式更像形狀。
試算表圖表 從 Google 試算表匯入 Google 簡報的圖表。

批次更新

BatchUpdate 方法可讓您更新簡報的多個層面。變更會按批次分組,因此如果有一項要求失敗,系統就不會寫入其他 (可能依附於此) 的變更。

batchUpdate 方法的運作方式是採用一或多個 Request 物件,每個物件都能指定要執行的單一要求類型。要求的類型有很多種。以下是要求類型的詳細資料,分組為不同類別。

使用簡報: CreateSlideRequest
UpdateSlidesPositionRequest
DuplicateObjectRequest
UpdatePagePropertiesRequest
DeleteObjectRequest
使用網頁元素: CreateShapeRequest
CreateLineRequest
UpdatePageElementTransformRequest
UpdateShapePropertiesRequest
DuplicateObjectRequest
DeleteObjectRequest
使用資料表: CreateTableRequest
InsertTableRowsRequest
InsertTableColumnRequest
DeleteTableRowRequest
DeleteTableColumnRequest
UpdateTableRowPropertiesRequest
UpdateTableColumnPropertiesRequest
UpdateTableBorderPropertiesRequest
UpdateTableCellPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
DeleteObjectRequest
使用圖表: CreateSheetsChartRequest
RefreshSheetsChartRequest
ReplaceAllShapesWithSheetsChartRequest
DeleteObjectRequest
使用圖片和影片: CreateImageRequest
CreateVideoRequest
UpdateImagePropertiesRequest
UpdateVideoPropertiesRequest
ReplaceAllShapesWithImageRequest
DuplicateObjectRequest
DeleteObjectRequest
處理文字: InsertTextRequest
DeleteTextRequest
ReplaceAllTextRequest
CreateParagraphBulletsRequest
DeleteParagraphBulletsRequest
UpdateTextStyleRequest
UpdateParagraphStyleRequest

batchUpdate 方法會傳回回應主體,其中包含每個要求的回應。每個回應會佔用與對應要求相同的索引;如果要求沒有適用的回應,該索引的回應將為空白。各種 Create 要求通常都有回應,因此您可以瞭解新新增物件的 ID。

使用物件 ID

簡報 API 中的簡報是由「頁面」和「頁面元素」組成。這些物件包含簡報中不重複的物件 ID 字串。

在建立時指定物件 ID

使用 BatchUpdate 方法建立網頁或網頁元素時,可以選擇為新物件指定物件 ID,這可讓您建立物件,並在相同的批次更新要求中修改該物件、盡可能減少簡報 API 的呼叫次數,並減少配額用量

在多數情況下,建議您產生隨機物件 ID。舉例來說,如果您使用的是 Java,java.util.UUID.randomUUID().toString() 應該就能順利運作。

如果應用程式想長期追蹤物件,請不要使用物件 ID,因為物件 ID 可能會變動。詳情請參閱下節。

不使用物件 ID 追蹤物件

當您提出簡報 API 要求時,系統通常會保留物件 ID。(我們會在方法的參考說明文件中說明任何例外狀況。)使用 Drive API 建立整份簡報的副本,也會保留物件 ID。

不過,在簡報 UI 中變更簡報後,您無法依賴物件 ID 變更。舉例來說,如果有人使用簡報 UI 複製貼上頁面元素,然後刪除原始,頁面元素現在會有新的專屬 ID,且您先前透過 API 提供的 ID 將會遺失。因此,我們不建議將物件 ID 儲存在應用程式儲存空間中。您應該根據文字內容或替代文字在簡報中尋找物件。

新建立的簡報通常會為預設投影片、主投影片和文字方塊使用一組相同的 ID。這些 ID 可能會隨時間變動,因此我們不建議您依賴這項功能。請改用呼叫 create()get() 傳回的呈現物件,找出要修改的元素。