はじめに

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

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

API の概要

presentations コレクションは、プレゼンテーション内の要素を取得および更新するためのメソッドを備えています。

スライド 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 では、いくつかの種類のページ要素を公開しています。

グループ 個々の単位として処理されるページ要素のセット。これらは一緒に移動、スケーリング、回転できます。
長方形、楕円、テキスト ボックスなどのシンプルな視覚的なオブジェクト。シェイプにはテキストを含めることができるため、シェイプはスライドの作成で最もよく使用されるページ要素です。
画像 スライドにインポートされたグラフィック。
動画 スライドにインポートされた動画。
視覚的な直線、曲線、コネクタ。
テーブル コンテンツのグリッド。
WordArt シェイプに近い動作をする視覚的テキスト要素。
SheetsChart 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 の操作

Slide API では、プレゼンテーションはページページ要素で構成されます。これらのオブジェクトには、プレゼンテーション内で一意のオブジェクト ID 文字列が含まれます。

作成時にオブジェクト ID を指定する

batchUpdate メソッドを使用してページまたはページ要素を作成する際に、必要に応じて新しいオブジェクトのオブジェクト ID を指定できます。これにより、同じ 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() の呼び出しで返されたプレゼンテーション オブジェクトを使用して、変更する要素を探します。