簡介

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 修改。
記事主人 記事主頁會定義所有記事頁面的預設文字樣式和頁面元素。備忘錄中的備忘稿在 Slide API 中為唯讀狀態。

網頁元素

網頁元素是放置在網頁上的視覺元件。API 提供數種頁面元素:

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

批次更新

batchUpdate 方法可讓您更新簡報的許多層面。系統會將變更批次分組,這樣一來,如果其中一個要求失敗,其他 (可能相依) 的變更就不會寫入其他變更。

batchUpdate 方法的運作方式是取用一或多個 Request 物件,每個物件會指定執行單一類型的要求。要求類型有很多種。以下說明各種要求類型,並分為不同類別。

使用簡報: CreateSlideRequest
UpdateSlidesPositionRequest
DuplicateObjectRequest
UpdatePagePropertiesRequest
DeleteObjectRequest
使用網頁元素: CreateShapeRequest
CreateLineRequest
UpdatePageElementTransformRequest
UpdateShapePropertiesRequest
DuplicateObjectRequest
DeleteObjectRequest
使用資料表: CreateTableRequest
InsertTableRowsRequest
InsertTableColumnsRequest
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

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

在建立時指定物件 ID

使用 batchUpdate 方法建立頁面或頁面元素時,您可以選擇為新物件指定物件 ID。如此一來,您就能在同一個批量更新要求中建立物件並進行修改,進而讓 Slide API 的呼叫次數降到最低,並減少配額用量

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

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

不使用物件 ID 追蹤物件

當您提出 Slide API 要求時,系統通常會保留物件 ID。(所有例外狀況都會列在方法的參考說明文件中)。使用 Drive API 製作整份簡報的副本時,也會保留物件 ID。

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

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