はじめに

Google スライドの API を使用すると、Google スライドのプレゼンテーションを作成、変更できます。

Google スライド API をアプリに組み込んで、ユーザーおよびシステム提供データから自動的に見栄えの良いスライド資料を作成できます。たとえば、データベースにある顧客の詳細を使用して、事前に設計されたテンプレートや選択した構成オプションと組み合わせることで、手動で作成するよりもわずかな時間で完成したプレゼンテーションを作成できます。

API の概要

presentations コレクションには、プレゼンテーション内の要素を取得、更新するためのメソッドが用意されています。

通常は、Slides API を使用してプレゼンテーションの作成と更新を行います。これを行うには、batchUpdate メソッドを使用します。このメソッドは、Request オブジェクトのリストを取得するため、次のようなことができます。

  • スライドを作成
  • 図形や表などの要素をスライドに追加する
  • テキストを挿入、変更、削除する
  • 要素に変換を適用する
  • スライドの順序を変更する

詳細については、バッチ アップデートをご覧ください。API の使用方法の簡単なエンドツーエンドの例については、スタートガイドをご覧ください。

プレゼンテーションの構成

Slides API では、プレゼンテーションはページで構成され、各ページにはページ要素が含まれています。

プレゼンテーションの ID は、次の URL から取得できます。

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

プレゼンテーション ID は、文字、数字、特殊文字を含む文字列です。次の正規表現を使用して、Google スプレッドシートの URL からプレゼンテーション ID を抽出できます。

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

Drive API に精通している場合、presentationIdFile リソースの ID に対応します。

ページとページ要素はオブジェクト ID で識別されます。

ページ

Google スライドには次の種類のページがあります。

修士号 スライド マスターでは、このマスターを使用するすべてのスライドに表示されるデフォルトのテキスト スタイル、背景、ページ要素を定義します。すべてのスライドに表示する必要があるページ要素は、マスターに追加する必要があります。ほとんどのプレゼンテーションにはマスターが 1 つありますが、中にはマスターが複数あるプレゼンテーションや、まったくないものもあります。
レイアウト レイアウトは、レイアウトを使用してスライドでページ要素がデフォルトで配置される方法のテンプレートとして機能します。各レイアウトは 1 つのマスターに関連付けられています。
スライド これらのページには、ユーザーに表示するコンテンツが含まれています。ほとんどのスライドはマスターとレイアウトに基づいています。各スライドに使用するレイアウトは、作成時に指定できます。
このページには、スライドのスピーカー ノートを含むシェイプなど、プレゼンテーション資料のコンテンツが含まれています。各スライドには、それぞれ対応するメモページがあります。スピーカー ノート シェイプ内のテキストのみ、Slides API で変更できます。
ノートマスター ノートマスターでは、すべてのノートページのデフォルトのテキスト スタイルとページ要素を定義します。Slides API では、ノートマスターは読み取り専用です。

ページ要素

ページ要素は、ページに配置される視覚的コンポーネントです。この API は、次のようなページ要素を公開します。

グループ 個別の単位として処理されるページ要素のセット。これらは一緒に移動、スケーリング、回転できます。
長方形、楕円、テキスト ボックスなどのプレーンな視覚的オブジェクト。図形にはテキストを含めることができるため、図形はスライドを作成する最も一般的なページ要素です。
画像 スライドにインポートされたグラフィック。
動画 スライドにインポートされた動画。
視覚的な線、曲線、コネクタ。
テーブル コンテンツのグリッド。
ワードアート シェイプのように動作する視覚的なテキスト要素。
スプレッドシートのグラフ Google スプレッドシートからスライドにインポートされたグラフ。

バッチ アップデート

batchUpdate メソッドを使用すると、プレゼンテーションのさまざまな要素を更新できます。変更はバッチにグループ化されるため、1 つのリクエストが失敗した場合、他の(依存する可能性がある)変更は書き込まれません。

batchUpdate メソッドは、1 つ以上の Request オブジェクトを取得することで機能します。各オブジェクトは、実行するリクエストの種類を 1 つ指定します。リクエストにはさまざまな種類があります。ここでは、リクエストの種類をカテゴリに分類しています。

スライドの操作: 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 を指定できます。これにより、1 つの batchUpdate リクエスト内でオブジェクトを作成して変更できるため、Slides API の呼び出し回数が最小限に抑えられ、割り当て使用量が削減されます。

ほとんどの場合、ランダムなオブジェクト ID を生成することをおすすめします。たとえば、Java を使用している場合、java.util.UUID.randomUUID().toString() は問題なく機能します。

アプリケーションが長期間にわたってオブジェクトを追跡する場合は、変更される可能性があるため、オブジェクト ID に依存しないでください。詳しくは、次のセクションをご覧ください。

オブジェクト ID を使用せずにオブジェクトを追跡する

Slides API をリクエストすると、通常、オブジェクト ID は保持されます。(メソッドのリファレンス ドキュメントで例外が呼び出されます)。Drive API を使用してプレゼンテーション全体のコピーを作成した場合も、オブジェクト ID は保持されます。

ただし、スライドの UI でプレゼンテーションが変更された後で、オブジェクト ID が変更されていないことを前提にすることはできません。たとえば、スライドの UI を使ってページ要素をコピーして貼り付けた後、元のページ要素を削除すると、そのページ要素には新しい一意の ID が付与され、以前に API で指定した ID は失われます。そのため、オブジェクト ID をアプリのストレージに保存することはおすすめしません。代わりに、テキスト コンテンツまたは代替テキストでプレゼンテーション内のオブジェクトを見つける必要があります。

新しく作成したプレゼンテーションでは通常、デフォルトのスライド、マスター、テキスト ボックスで一貫した ID のセットを使用します。これらの ID は後で変更される可能性があるため、この機能に依存することはおすすめしません。代わりに、create() または get() の呼び出しで返されたプレゼンテーション オブジェクトを使用して、変更する要素を探します。