はじめに

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

アプリに Google Slides API を統合すると、ユーザーやシステムから提供されるデータを基にして、美しいスライド資料を自動的に作成できます。たとえば、データベースから取得した顧客の詳細情報を、既成のテンプレートと選択済みの設定オプションに統合すると、手動で作成するよりもはるかに短時間でプレゼンテーションが完成します。

API の概要

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

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 に精通している方は、presentationIdファイルリソースの ID に対応していることが理解できるでしょう。

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

ページ

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

修士号 スライド マスターで指定した既定のテキスト スタイル、背景、ページ要素は、そのマスターを使用するすべてのスライドに表示されます。全スライドに表示したいページ要素はマスターに追加するようにしてください。一般的なプレゼンテーションにはマスターが 1 つ含まれますが、複数のマスターを使用したり、マスターをまったく使用しないことも可能です。
レイアウト レイアウトはテンプレートの役割を果たし、そのレイアウトを使用するスライドにおいて、デフォルトでページ要素をどのように配置するかを規定します。各レイアウトは 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 メソッドは、各リクエストの レスポンスを含むレスポンスの本文を返します。各レスポンスは、対応するリクエストと同じインデックスを使用します。該当するレスポンスがないリクエストの場合、そのインデックスのレスポンスは空になります。通常は、さまざまな Create リクエストに対してレスポンスが返されるため、新規に追加したオブジェクトの ID を把握できます。

オブジェクト ID の使用

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

オブジェクト作成時の ID 指定

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