ADVERTISEMENT

【Googleスプレッドシート】Apps ScriptでHTML出力を返すdoGet関数!静的ページの作成

【Googleスプレッドシート】Apps ScriptでHTML出力を返すdoGet関数!静的ページの作成
🛡️ 超解決

GoogleスプレッドシートのApps Scriptを使って、ブラウザからアクセスできる独自のWebページを作りたいと思ったことはありませんか。doGet関数を使えば、スプレッドシートをデータベース代わりにして、動的なHTMLページを簡単に公開できます。この記事では、doGet関数の基本的な使い方から、静的ページの作成手順、よくあるエラーの対処法までを詳しく解説します。

この記事を読み終えると、あなたは自分だけのWebアプリをスプレッドシート上で構築できるようになります。

【要点】doGet関数でHTMLを返すWebアプリの作成手順

  • doGet関数の定義: 関数doGet(e) { return HtmlService.createHtmlOutputFromFile(‘Index’); } で、HTMLファイルを返します。
  • HTMLファイルの作成: プロジェクト内に「Index.html」というファイルを追加し、任意のHTMLコードを記述します。
  • Webアプリとして公開: デプロイから「新しいデプロイ」→「ウェブアプリ」を選択し、アクセス権限を設定して公開します。
  • テンプレートHTMLの活用: タグを使うと、サーバー側でデータを埋め込んだ動的なページが作成できます。

ADVERTISEMENT

doGet関数でHTMLを返す仕組みと準備

doGet関数は、Google Apps ScriptでWebアプリを作成する際のエントリーポイントです。ユーザーが公開されたURLにアクセスすると、この関数が実行され、戻り値としてHTMLやテキストがブラウザに表示されます。この仕組みを使えば、スプレッドシートのデータを加工して動的なWebページとして提供できます。

事前に準備するものは、Googleアカウントと、スプレッドシートに紐付いたApps Scriptプロジェクトです。スプレッドシートを開き、「拡張機能」→「Apps Script」でエディターを開きます。ここにコードを記述していきます。

doGet関数でHTMLを出力する手順

ここでは、シンプルな静的HTMLページを返すdoGet関数を作成します。以下の手順に従って進めてください。

  1. コード.gsに関数を記述する
    プロジェクトの「コード.gs」ファイルを開き、以下のコードを貼り付けます。
    function doGet(e) {
    return HtmlService.createHtmlOutputFromFile('Index');
    }

    このコードは、プロジェクト内の「Index.html」というファイルを読み込んで、その内容をHTMLとして返します。
  2. HTMLファイルを作成する
    エディタの左側にある「ファイルを追加」ボタン(+アイコン)をクリックし、「HTML」を選択します。ファイル名を「Index」に設定し、以下のサンプルコードを記述します。
    <!DOCTYPE html>
    <html>
    <head>
      <base target="_top">
      <title>My Web App</title>
    </head>
    <body>
      <h1>Hello, World!</h1>
      <p>This is a static page created with Google Apps Script.</p>
    </body>
    </html>
  3. Webアプリとしてデプロイする
    エディタの右上にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。種類として「ウェブアプリ」を選び、以下の設定を行います。
    – 説明: 任意の説明(例: 初回デプロイ)
    – 次のユーザーとして実行: 「自分」または「ウェブアプリにアクセスしているユーザー」(後述の注意点参照)
    – アクセスできるユーザー: 「全員(匿名ユーザーを含む)」または「自分のみ」など、目的に応じて選択
    設定後、「デプロイ」ボタンをクリックすると、URLが発行されます。このURLにアクセスすると、作成したHTMLページが表示されます。
  4. 動作確認と更新
    デプロイ後にコードを変更した場合は、再度「デプロイ」→「新しいデプロイ」または「既存のデプロイを管理」からバージョンを更新して再公開します。新しいバージョンでも同じURLが使えます。

よくあるエラーと注意点

HtmlService.createHtmlOutputFromFile でファイルが見つからない

ファイル名が正しいか確認してください。createHtmlOutputFromFile(‘Index’) と指定した場合は、プロジェクト内に「Index.html」という名前のファイルが存在する必要があります。ファイル名の大文字小文字も区別されますので注意してください。

デプロイ後に「スクリプトが大きすぎます」と表示される

HTMLファイルのサイズが大きすぎる場合に発生します。画像や大量のCSS/JSを直接埋め込むのではなく、外部リンクで読み込むようにするか、テンプレートを使って分割してください。

アクセス権限の設定ミスで403エラー

デプロイ時の「アクセスできるユーザー」が「自分のみ」になっている場合、他のユーザーがアクセスしようとすると403エラーが表示されます。第三者に公開する場合は「全員(匿名ユーザーを含む)」を選択してください。

doGet関数が実行されない

関数名が「doGet」であることを確認してください。大文字小文字は区別されませんが、スペルミスがないように注意します。また、プロジェクト内にdoGet関数が1つだけ定義されている必要があります。

ADVERTISEMENT

doGet関数とdoPost関数の比較

項目 doGet doPost
呼び出し方法 GETリクエスト(URL直接アクセス) POSTリクエスト(フォーム送信など)
主な用途 Webページの表示、データの取得 データの送信・登録・更新
戻り値の例 HtmlOutput, TextOutput HtmlOutput, TextOutput
引数e クエリパラメータを含む POSTデータを含む
主な注意点 URLにパラメータが露出する クロスサイトリクエストフォージェリ対策が必要

まとめ

doGet関数を使えば、Googleスプレッドシートのスクリプトから簡単に静的HTMLページを公開できます。基本的な手順は、コード.gsにdoGet関数を記述し、HTMLファイルを作成してデプロイするだけです。公開後は、スプレッドシートのデータを読み込んで動的なコンテンツを表示するなど、応用範囲が広がります。次は、doGet関数内でスプレッドシートの値を取得してテンプレートに埋め込む方法を試してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。