ウェブアプリ

スクリプトのユーザー インターフェースを作成する場合、スクリプトを できます。たとえば、ユーザーが予約をスケジュールするためのスクリプトが サポートチームのメンバーはウェブアプリとして提示するのが最適で、 ユーザーがブラウザから直接アクセスできます。

スタンドアロン スクリプトアプリケーションにバインドされた Google Workspace スクリプト は、 (以下の要件を満たす場合に限ります)。

ウェブアプリの要件

スクリプトが次の要件を満たしている場合は、ウェブアプリとして公開できます。

リクエスト パラメータ

ユーザーがアプリにアクセスするか、プログラムがアプリに HTTP GET リクエストを送信すると、 Apps Script は関数 doGet(e) を実行します。プログラムがアプリに HTTP POST リクエストの場合、Apps Script は代わりに doPost(e) を実行します。どちらの場合も、e 引数は、任意のイベントに関する情報を含むイベント パラメータを表します。 渡します。このイベント オブジェクトの構造は次の表のとおりです。 下にあります。

フィールド
e.queryString

URL のクエリ文字列部分の値。クエリ文字列が指定されていない場合は null

name=alice&n=1&n=2
e.parameter

リクエスト パラメータに対応する Key-Value ペアのオブジェクト。 パラメータが複数の値を持つ場合は、最初の値のみが返されます。

{"name": "alice", "n": "1"}
e.parameters

e.parameter に類似したオブジェクト。ただし、キーごとに値の配列を持ちます。

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

/exec または /dev の後の URL パス。 たとえば、URL パスの末尾が /exec/hello の場合、 パス情報は hello です。

e.contextPath 使用されず、常に空の文字列です。
e.contentLength

POST リクエストの場合はリクエスト本文の長さ、GET リクエストの場合は -1

332
e.postData.length

e.contentLength と同じ

332
e.postData.type

POST 本文の MIME タイプ

text/csv
e.postData.contents

POST 本文のコンテンツ テキスト

Alice,21
e.postData.name

常に値「postData」

postData

たとえば、usernameage などのパラメータを渡すことができます。 次のように URL に変換します。

https://script.google.com/.../exec?username=jsmith&age=21

その後、次のようにパラメータを表示できます。

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

上記の例では、doGet(e) は次の出力を返します。

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

スクリプトをウェブアプリとしてデプロイする

スクリプトをウェブアプリとしてデプロイする手順は次のとおりです。

  1. スクリプト プロジェクトの右上にある [デプロイ] >新しいデプロイ
  2. [種類を選択]の横で[デプロイタイプを有効にする] を >ウェブアプリ
  3. [Deployment] の下のフィールドにウェブアプリに関する情報を入力します。 表示されます。
  4. [デプロイ] をクリックします。

ウェブアプリの URL は、アプリを使用するユーザーと共有できます。 アクセス権を付与する必要があります。

ウェブアプリのデプロイをテストする

スクリプトをウェブアプリとしてテストする手順は次のとおりです。

  1. スクリプト プロジェクトの右上にある [デプロイ] >テスト 確認します
  2. [種類を選択]の横で[デプロイタイプを有効にする] を >ウェブアプリ
  3. [ウェブアプリの URL] の下にある [コピー] をクリックします。
  4. コピーした URL をブラウザに貼り付けて、ウェブアプリをテストします。

    この URL の末尾は /dev で、編集権限を持つユーザーのみがアクセスできます 追加できます。アプリのこのインスタンスは常に、最後に保存された 開発中のテスト専用です。

で確認できます。

権限

ウェブアプリの権限は、実行方法によって異なります 次の操作を行います。

  • Execute the app as me - この場合、スクリプトは常に実行されます。 スクリプトのオーナーと同じ権限で操作できます。
  • ウェブアプリにアクセスするユーザーとしてアプリを実行する - この場合、スクリプト ウェブアプリを使用して、アクティブ ユーザーの ID で実行されます。この権限 という方法では、ユーザーがサイトにアクセスしたときに、スクリプト オーナーのメールアドレスが アクセスを承認します。
で確認できます。

Google サイトにウェブアプリを埋め込む

Google サイトにウェブアプリを埋め込むには、 デプロイ済み。また、 Deploy ダイアログの [Deployed URL] が必要です。

Google サイトにウェブアプリを埋め込むには 手順は次のとおりです。

  1. ウェブアプリを追加する Google サイトページを開きます。
  2. [挿入] > Embed URL
  3. ウェブアプリの URL を貼り付けて、[追加] をクリックします。

ページのプレビューのフレーム内にウェブアプリが表示されます。公開するタイミング アクセスするには、サイト閲覧者がウェブ アプリケーションを承認する必要がある場合があります。 実行されます。未承認のウェブアプリが承認プロンプトを できます。

ウェブアプリとブラウザの履歴

Apps Script ウェブアプリで複数のページをシミュレートすることが望ましい場合があります。 URL パラメータで制御する動的 UI を備えたアプリケーションに適しています。 そのためには、アプリの状態を表す状態オブジェクトを 状態をブラウザ履歴に push する際、 ユーザーがアプリを操作します履歴イベントをリッスンして ユーザーが Cloud Shell を使用して前後移動したときに、正しい UI を表示する できます。読み込み時に URL パラメータをクエリすることで、 それらのパラメータに基づいて動的に UI を作成し、ユーザーが 特定の状態でアプリを起動します。

Apps Script には、クライアントサイドの非同期 JavaScript API が 2 つ用意されています。 ブラウザ履歴にリンクされたウェブアプリを作成できます。

  • google.script.history ブラウザ履歴の変更に動的に対応するメソッドを提供します。この 状態(定義可能なシンプルなオブジェクト)をブラウザにプッシュする機能 履歴スタック内の一番上の状態を置き換え、リスナーを設定する コールバック関数を使用して、履歴の変更に応答します。

  • google.script.url には、 は、現在のページの URL パラメータと URL フラグメントを取得する手段です。 できます。

これらの履歴 API はウェブアプリでのみ使用できます。 サイドバー、ダイアログ、アドオンで サポートされていますこの機能はまた 非推奨 Google サイトに埋め込まれたウェブアプリ