Google Apps Scriptで作成したプログラムをWebアプリとして公開すると、独自のURLを通じて外部からアクセスできるようになります。しかし、デプロイの手順や権限設定に戸惑う方も多いのではないでしょうか。この記事では、スクリプトエディタからWebアプリを公開し、URLを発行するまでの流れをわかりやすく解説します。手順通りに進めれば、数分でWebアプリを稼働させられます。
【要点】Apps ScriptでWebアプリを公開する3ステップ
- doGet関数の実装: WebアプリのエントリーポイントとなるdoGet関数を記述して、HTMLコンテンツを返すようにします。
- 新しいデプロイの作成: スクリプトエディタの「デプロイ」ボタンから「新しいデプロイ」を選択し、種類を「Webアプリ」に設定します。
- アクセス権限の設定と承認: デプロイ時に「自分」「組織内全員」「全員(匿名ユーザーを含む)」から適切なアクセス権限を選び、最初のアクセス時に承認手続きを行います。
ADVERTISEMENT
目次
Apps ScriptのWebアプリ公開の仕組み
Google Apps Scriptは、Googleのクラウド上で動作するJavaScriptベースのスクリプト環境です。このスクリプトを「Webアプリとして公開」すると、スクリプトで定義したdoGet関数(GETリクエスト)やdoPost関数(POSTリクエスト)が外部からのHTTPリクエストを処理できるようになります。公開されたスクリプトには一意のURLが割り当てられ、そのURLにアクセスするとスクリプトが実行され、結果がHTMLやJSONなどの形式で返されます。Webアプリの公開にはGoogleアカウントが必要で、スクリプトの権限によってアクセス可能な範囲が決まります。
Webアプリを公開してURLを発行する手順
ここからは実際の操作手順を説明します。Googleスプレッドシートからスクリプトエディタを開き、コードを記述してデプロイする流れです。
1. スクリプトエディタを開く
- スプレッドシートを開く
Webアプリとして公開したいスクリプトが紐づくスプレッドシートを開きます。既存のシートを利用するか、新しく作成してください。 - 拡張機能からスクリプトエディタを起動
メニューの「拡張機能」→「Apps Script」をクリックします。別タブでスクリプトエディタが開きます。
2. スクリプトを記述する
- プロジェクト名を設定
左上の「無題のプロジェクト」をクリックし、わかりやすい名前(例:「在庫管理Webアプリ」)を入力します。 - doGet関数を書く
エディタに以下のサンプルコードを入力します。この関数がWebアプリのトップページを返します。function doGet() { return HtmlService.createHtmlOutput('<h1>Hello World</h1>'); } - 必要に応じてdoPost関数も追加
フォーム送信などを処理する場合は、doPost関数も記述します。
3. デプロイを実行する
- デプロイボタンをクリック
スクリプトエディタの右上にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。 - 種類を選択
表示されたダイアログで、歯車アイコンをクリックし「種類」から「Webアプリ」を選びます。 - 説明を入力
「説明」欄に、このデプロイのバージョンや用途を記入します(例:「初期バージョン」)。 - 実行ユーザーを設定
「実行するアカウント」は「自分」を選択します(通常は自分で実行)。 - アクセスできるユーザーを設定
「アクセスできるユーザー」を以下のいずれかから選びます。
・「自分」:自分のGoogleアカウントのみアクセス可能
・「組織内の全員」:同じGoogle Workspaceドメインのユーザー全員
・「全員(匿名ユーザーを含む)」:インターネット上の誰でもアクセス可能(公開アプリの場合) - デプロイを実行
設定が完了したら「デプロイ」ボタンをクリックします。
4. 承認とURLの確認
- 権限の承認
初回デプロイ時は、スクリプトが必要とする権限(スプレッドシートの読み取りなど)の承認画面が表示されます。使用するGoogleアカウントを選び、「許可」をクリックします。まれに「このアプリは確認されていません」と表示されることがありますが、その場合は「詳細」→「安全ではないページに移動」をクリックして進んでください。ただし、信頼できるスクリプトのみ実行してください。 - URLをコピー
デプロイ完了後、「WebアプリのURL」という項目に発行されたURLが表示されます。クリップボードにコピーして保存します。 - 動作確認
ブラウザの新しいタブにURLを貼り付けてアクセスし、doGet関数で返したHTMLが表示されることを確認します。
5. デプロイの管理と更新
- 新しいバージョンをデプロイ
スクリプトを修正したら、再度「デプロイ」→「新しいデプロイ」から手順3を繰り返します。URLは毎回変わるため、必要に応じてユーザーに新しいURLを伝えてください。 - 既存のデプロイを更新する
同じURLを維持したい場合は、スクリプトエディタの左メニュー「デプロイ」→「デプロイを管理」から該当デプロイの「編集」アイコンをクリックし、「新しいバージョン」として更新します。これによりURLは変わりません。 - デプロイを削除する
不要になったデプロイは、同じ管理画面から三点リーダーメニュー→「削除」で削除できます。
Webアプリ公開時の注意点とトラブル対処法
アクセス権限の誤設定で外部からアクセスできない
「アクセスできるユーザー」を「自分」だけに設定していると、他のユーザーがURLにアクセスしてもエラーになります。組織内で使う場合は「組織内の全員」、一般公開する場合は「全員(匿名ユーザーを含む)」を選択してください。また、公開後も設定を変更したい場合は、再度デプロイを作成し直す必要があります。
承認画面で「このアプリはブロックされました」と表示される
Googleが未確認のアプリとして扱う場合に発生します。回避するには、OAuth同意画面でテストユーザーとして自分のメールアドレスを追加するか、アプリを公開(公開ステータスを「テスト」から「本番」に変更)する必要があります。ただし、個人利用や社内利用の範囲であれば、テストモードのままでも承認をスキップして進められます。
デプロイ後にスクリプトを修正しても反映されない
Webアプリはデプロイ時点のコードがスナップショットとして保存されます。修正を反映するには、新しいデプロイを作成するか、既存のデプロイを新しいバージョンで更新してください。なお、テスト段階では「デプロイ」→「テストデプロイ」を使用すると、毎回最新コードを反映した一時的なURLを得られます。テストデプロイのURLは数時間で無効になるため、本番では利用できません。
URLを第三者に共有する際のセキュリティリスク
「全員(匿名ユーザーを含む)」に設定すると、URLを知っている誰でもアクセス可能です。認証機能を追加したい場合は、スクリプト内でGoogleのログイン状態を確認する処理(Session.getActiveUser().getEmail()など)を組み込み、アクセス制御を行うことを推奨します。また、機密データを扱う場合はHTTPS経由でもURLが漏洩するリスクがあるため、公開範囲を最小限に留めてください。
ADVERTISEMENT
デプロイ方法の比較:新しいデプロイ vs テストデプロイ
| 項目 | 新しいデプロイ | テストデプロイ |
|---|---|---|
| URLの永続性 | 削除しない限り有効 | 数時間で無効、毎回異なるURL |
| コードの反映 | デプロイ時のスナップショット | 常に最新コードを実行 |
| 権限承認 | 初回のみ必要 | 毎回必要(同じスコープならスキップ可) |
| 用途 | 本番公開、安定版の提供 | 開発中の動作確認、デバッグ |
まとめ
この記事では、Google Apps ScriptをWebアプリとして公開し、URLを発行する手順を解説しました。doGet関数の記述、新しいデプロイの作成、権限設定という3つのステップで、手軽にWebアプリを稼働させられます。公開後はアクセス権限や承認画面の注意点を押さえておけば、トラブルを回避できるでしょう。次は、スクリプトにデータベース連携やフォーム処理を追加して、より実用的なアプリに発展させてみてください。Apps Scriptのマニュアルやコミュニティフォーラムも参考になります。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
