簡介

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

應用程式可與 Google Slides API 整合,進而自動根據使用者和系統提供的資料建立精美的簡報。舉例來說,您可以使用資料庫中的客戶詳細資料,將其與預先設計的範本和所選設定選項結合,縮短手動建立完成簡報所需的時間。

API 總覽

呈現集合提供多種方法,可讓您取得及更新簡報中的元素。

使用 Slides API 的大部分工作可能會建立及更新簡報。方法是使用 batchUpdate 方法;這個方法會取得 Request 物件清單,以供您執行以下操作:

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

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

簡報的結構

Slides 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 簡報包含下列頁面:

碩士 投影片主投影片會定義預設文字樣式、背景和網頁元素,這些元素會出現在所有採用這個主投影片的投影片中。必須顯示在所有投影片上的頁面元素應新增至主投影片。大多數簡報都有一個主投影片,但有些可能有多個或完全沒有。
版面配置 透過版面配置這個範本,您可以瞭解在投影片中使用版面配置時,頁面元素的預設排列方式。每個版面配置都與一個主要執行個體相關聯。
簡報 這些頁麵包含您向觀眾顯示的內容。 大多數的投影片都是以主投影片和版面配置為基礎。您可以在建立每張投影片時,指定每張投影片要使用的版面配置。
附註 這些頁麵包含簡報講義內容,包括內含投影片演講者備忘稿的形狀。每張投影片都有一個對應的記事頁面。使用 Slides API 時,只有演講者備忘稿圖案中的文字。
記事本主 記事主版可定義所有記事頁面的預設文字樣式和頁面元素。記事主投影片在 Slides API 中為唯讀狀態。

網頁元素

網頁元素是貼在網頁上的視覺元件。API 會公開多種頁面元素:

群組 系統會將一組網頁元素視為個別單元。這些物件可以一起移動、縮放及旋轉。
形狀 純視覺物件,例如矩形、刪節號和文字方塊。形狀可以包含文字,因此是建立投影片最常見的頁面元素。
圖片 匯入簡報的圖片。
影片 已將影片匯入簡報。
折線圖 視覺線、曲線或連接頭。
資料表 內容格線。
WordArt 行為與形狀更相似的視覺文字元素。
SheetsChart 從 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

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

在建立時指定物件 ID

使用 batchUpdate 方法建立頁面或頁面元素時,可以選擇是否要為新物件指定物件 ID。如此,即可建立物件,並在同一批次更新要求中加以修改,盡可能減少向 Slides API 呼叫的次數,並降低配額用量

在大部分情況下,我們建議產生隨機物件 ID。舉例來說,如果您使用 Java,java.util.UUID.randomUUID().toString() 應該就能正常運作。

當應用程式想要持續追蹤更長時間的物件時,請勿依賴物件 ID,因為物件 ID 可能會有所變更。詳情請參閱下節說明。

持續追蹤物件,不使用物件 ID

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

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

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