はじめに

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

アプリを Google Slides 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 つのマスターに関連付けられます。
スライド これらのページには、視聴者に提供するコンテンツが含まれます。 ほとんどのスライドは、マスターとレイアウトに基づいています。スライドを作成するときに、スライドごとに使用するレイアウトを指定できます。
メモ これらのページには、スライドのスピーカー ノートを含むシェイプなど、プレゼンテーションの配布資料のコンテンツが含まれています。各スライドには、対応するメモページが 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 メソッドは、リクエストごとに Response を含むレスポンスの本文を返します。各レスポンスは、対応するリクエストと同じインデックスを占有します。該当するレスポンスがないリクエストの場合、そのインデックスのレスポンスは空になります。通常、さまざまな Create リクエストにはレスポンスがあるため、新しく追加されたオブジェクトの ID を知ることができます。

オブジェクト ID の操作

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

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

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