高度な Google サービス

Apps Script の高度なサービスを使用すると、経験豊富なデベロッパーは、HTTP インターフェースを使用するよりも少ない設定で特定の公開 Google API に接続できます。拡張サービスは基本的に、これらの Google API のシンラッパーです。これらは Apps Script の組み込みサービスと同様に機能します。たとえば、予測入力を提供し、Apps Script が承認フローを自動的に処理します。ただし、スクリプトで使用するには、拡張サービスを有効にする必要があります。

拡張サービスとして利用できる Google API を確認するには、リファレンス高度な Google サービス セクションをご覧ください。拡張サービスとして利用できない Google API を使用する場合は、他の外部 API と同じように接続します。

拡張サービスと HTTP は

高度な Google サービスは、それぞれ公開 Google API に関連付けられています。Apps Script では、拡張サービスを使用するか、UrlFetch を使用して API リクエストを直接発行することで、これらの API にアクセスできます。

高度なサービス メソッドを使用する場合、Apps Script は承認フローを処理し、予測入力のサポートを提供します。ただし、拡張サービスを使用する前に、拡張サービスを有効にする必要があります。また、一部の拡張サービスでは、API で利用できる機能のサブセットのみが提供されます。

UrlFetch メソッドを使用して API に直接アクセスする場合、基本的に Google API は外部 API として扱われます。この方法では、API のすべての要素を使用できます。ただし、API の承認はユーザー自身で処理する必要があります。また、必要なヘッダーを作成し、API レスポンスを解析する必要があります。

一般的には、可能な場合は拡張サービスを使用し、必要な機能が拡張サービスで提供されない場合にのみ UrlFetch メソッドを使用するのが最も簡単です。

要件

拡張サービスを使用するには、次の要件を満たす必要があります。

  1. スクリプト プロジェクトで拡張サービスを有効にする必要があります。
  2. スクリプトで使用する Cloud Platform(GCP)プロジェクトで、拡張サービスに対応する API が有効になっていることを確認する必要があります。

    2019 年 4 月 8 日以降に作成されたデフォルトの GCP プロジェクトをスクリプト プロジェクトで使用している場合、拡張サービスを有効にしてスクリプト プロジェクトを保存すると、API が自動的に有効になります。まだ同意していない場合は、Google CloudGoogle API の利用規約への同意を求められる場合もあります。

    スクリプト プロジェクトで標準の GCP プロジェクトまたは古いデフォルトの GCP プロジェクトを使用している場合は、GCP プロジェクトで拡張サービスに対応する API を手動で有効にする必要があります。この変更を行うには、GCP プロジェクトの編集権限が必要です。

詳しくは、Cloud Platform プロジェクトをご覧ください。

拡張サービスを有効にする

Google の拡張サービスを使用する手順は次のとおりです。

  1. Apps Script プロジェクトを開きます。
  2. 左側の [エディタ] をクリックします。
  3. 左側の [サービス] の横にある [サービスを追加] をクリックします。
  4. Google の拡張サービスを選択し、[追加] をクリックします。

有効にした拡張サービスは、予測入力で使用できるようになります。

メソッド シグネチャの決定方法

拡張サービスでは一般に、対応する公開 API と同じオブジェクト、メソッド名、パラメータを使用しますが、メソッド シグネチャは Apps Script で使用できるように変換されます。通常、スクリプト エディタの予測入力関数は開始に十分な情報を提供しますが、以下のルールでは Apps Script が公開 Google API からメソッドの署名を生成する仕組みを説明します。

Google API へのリクエストは、パスパラメータ、クエリ パラメータ、リクエスト本文、メディア アップロードの添付ファイルなど、さまざまな種類のデータを受け入れることができます。一部の拡張サービスでは、特定の HTTP リクエスト ヘッダー(Calendar Advanced Service など)を受け入れることもできます。

Google Apps Script の対応するメソッド シグネチャには、次の引数があります。

  1. リクエスト本文(通常はリソース)。JavaScript オブジェクトで指定します。
  2. パスまたは必須パラメータ(個別の引数)。
  3. メディア アップロードのアタッチメント(Blob 引数)。
  4. オプションのパラメータ。パラメータ名を値にマッピングする JavaScript オブジェクトとして指定します。
  5. HTTP リクエスト ヘッダー。ヘッダー名をヘッダー値にマッピングする JavaScript オブジェクト。

メソッドが特定のカテゴリにアイテムを持たない場合、シグネチャのその部分は省略されます。

以下の特別な例外にご注意ください。

  • メディア アップロードを受け入れるメソッドの場合、パラメータ uploadType が自動的に設定されます。
  • delete は JavaScript の予約語であるため、Google API の delete という名前のメソッドは、Apps Script では remove という名前になります。
  • 拡張サービスが HTTP リクエスト ヘッダーを受け入れるように構成されており、リクエスト ヘッダーの JavaScript オブジェクトを設定する場合は、オプション パラメータの JavaScript オブジェクト(オプション パラメータを使用しない場合は空のオブジェクト)も設定する必要があります。

拡張サービスのサポート

拡張サービスは、Apps Script 内で Google API を使用できるようにするシンラッパーにすぎません。そのため、コンテナの使用中に発生する問題は通常、Apps Script 自体ではなく、基盤となる API の問題です。

拡張サービスの使用中に問題が発生した場合は、基盤となる API のサポートの手順に沿って問題を報告してください。これらのサポート手順へのリンクは、Apps Script のリファレンス セクションにある各拡張サービスガイドに記載されています。