基本的な書き方

Slides API を使用して、プレゼンテーション ページの要素を追加、変更できます。 このページの例は、presentations.batchUpdate メソッドを使用して一般的な読み取りオペレーションを実行する方法を示しています。

この例では、次の変数を使用します。

  • presentationId - プレゼンテーション ID を提供する場所を示します。この ID の値は、プレゼンテーションの URL で確認できます。
  • pageId - ページ オブジェクト ID を指定する場所を示します。この値は、URL から、または API 読み取りリクエストを使用して取得できます。
  • pageElementId - ページ要素オブジェクト ID を指定する場所を示します。この ID は、作成する要素に(なんらかの制限で)指定することも、API で自動的に作成されるようにすることもできます。要素 ID は、API 読み取りリクエストを通じて取得できます。

スライドにテキスト ボックスを追加する

次の presentations.batchUpdate リクエストでは、pageId で指定されたスライドに新しいテキスト ボックス(「My Add Text Box」という文字列を含む)が追加されています。リクエストの本文で 2 つのリクエストを指定します。1 つは特定のサイズと位置でテキスト ボックスを作成し、もう 1 つはテキスト ボックスを挿入します。

最初のリクエストは、テキスト ボックスに使用するオブジェクト ID を指定します。これにより、2 番目のリクエストが同じ API 呼び出しで変更できるため、オーバーヘッドを削減できます。

リクエスト プロトコルを以下に示します。テキストと図形の追加ガイドでは、Google API クライアント ライブラリを使用して異なる言語でバッチ アップデートを実装する例を示します。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": pageElementId,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

スライドに画像を追加する

以下の presentations.batchUpdate リクエストでは、pageId で指定されたスライドに新しい画像が追加されています。この画像は、API で取得する URL(imageUrl)を指定して指定します。このリクエストによってスライド内の画像が拡大縮小され、配置されます。

リクエスト プロトコルを以下に示します。テキストと図形の追加ガイドでは、Google API クライアント ライブラリを使用して異なる言語でバッチ アップデートを実装する例を示します。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": imageUrl,
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

ページまたはページ要素を削除する

次の presentations.batchUpdate リクエストでは、2 つの別々のリクエストを使用して、pageElementId で指定されたページ要素と pageId で指定されたスライドが削除されます。

リクエスト プロトコルを以下に示します。テキストと図形の追加ガイドでは、Google API クライアント ライブラリを使用して異なる言語でバッチ アップデートを実装する例を示します。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": pageElementId
      },
      "deleteObject": {
        "objectId": pageId
      }
    }
  ]
}

指定した図形内のテキストを編集する

次の presentations.batchUpdate リクエストは、pageElementId で指定されたシェイプに存在するテキストの一部を置き換えるものです。これを行うには、開始インデックスから始まるテキストを削除し、その位置に新しいテキストを挿入します。この例では、元のテキスト文字列「My Shape Text: ????」が「My Shape Text: Trapezoid」に置き換えられています。

このリクエストによって影響を受けるのは、指定した 1 つの図形内のテキストのみです。プレゼンテーション内のすべてのテキストを置換するには、ReplaceAllTextRequest リクエストを使用します。

リクエスト プロトコルを以下に示します。テキストと図形の追加ガイドでは、Google API クライアント ライブラリを使用して異なる言語でバッチ アップデートを実装する例を示します。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": pageElementId,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": pageElementId,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

シェイプタグを画像に置き換えます

以下の presentations.batchUpdate リクエストでは、タグの形状の単一のインスタンスを画像に置き換え、同じ位置に維持し、画像のアスペクト比を維持しながらタグのサイズに合わせてスケーリングしています。また、このリクエストを使用して、ある画像を別の画像に置き換えることもできます。リクエストでは、新しいイメージの追加とタグの削除を行います。

このリクエストによって指定された単一のシェイプのみが置き換えられます。プレゼンテーション内のすべての場所でタグシェイプを置き換えるには、replaceAllShapesWithImage リクエストを使用します。

タグ形状には次のプロパティがあります(presentations.pages.get リクエストで確認できます)。

{
  "objectId": pageElementId,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

このシェイプは、pageId で指定されたスライド上にあります。図形を置き換える画像を指定するには、API が画像を取得する URL(imageUrl)を指定します。画像アスペクト比を維持したままタグのサイズに制限するため、createImage リクエストでは、画像サイズをタグサイズと縮尺の積に設定し、画像のスケーリング ファクタを 1 に設定します(アスペクト比を維持するガイドを参照)。

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": imageUrl,
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": pageElementId
      }
    }
  ]
}