HTML サービス: HTML の作成と提供

HTML サービスを使用すると、サーバーサイドの Apps Script 関数とやり取りできるウェブページを提供できます。特に、ウェブアプリの構築や、Google ドキュメント、スプレッドシート、フォームでのカスタム ユーザー インターフェースの追加に役立ちます。メールの本文を作成することもできます。

HTML ファイルを作成する

Apps Script プロジェクトに HTML ファイルを追加する手順は次のとおりです。

  1. Apps Script エディタを開きます。
  2. 左側の [ファイルを追加] > [HTML] をクリックします。

HTML ファイル内では、ほとんどの標準的な HTML、CSS、クライアントサイド JavaScript を記述できます。このページは HTML5 として配信されます。ただし、制限事項で説明されているように、HTML5 の一部の高度な機能は利用できません。

ファイルには、テンプレート HTML のセクションで説明されているように、PHP と同様に、ページがユーザーに送信される前にサーバーで処理されるテンプレート スクリプレットを含めることもできます。

HTML をウェブアプリとして提供する

HTML サービスでウェブアプリを作成するには、コードに doGet() 関数を含める必要があります。この関数は、スクリプトがページを配信する方法を指定します。この例に示すように、関数は HtmlOutput オブジェクトを返す必要があります。

コード.gs

function doGet() {   return HtmlService.createHtmlOutputFromFile('Index'); }

Index.html

<!DOCTYPE html> <html>   <head>     <base target="_top">   </head>   <body>     Hello, World!   </body> </html>

基本的なフレームワークが整ったら、スクリプトのバージョンを保存し、スクリプトをウェブアプリとしてデプロイするだけです。

スクリプトをウェブアプリとしてデプロイした後、Google サイトに埋め込むこともできます。

HTML を Google ドキュメント、スプレッドシート、スライド、フォームのユーザー インターフェースとして提供する

スクリプトがファイルにコンテナ バインドされている場合、HTML サービスは Google ドキュメント、スプレッドシート、スライド、フォームにダイアログまたはサイドバーを表示できます。(Google フォームでは、カスタム ユーザー インターフェースはフォームを開いて変更する編集者にのみ表示され、フォームを開いて回答するユーザーには表示されません)。

ウェブアプリとは異なり、ドキュメント、スプレッドシート、フォームのユーザー インターフェースを作成するスクリプトには、特に doGet() 関数は必要ありません。また、スクリプトのバージョンを保存したり、デプロイしたりする必要もありません。代わりに、ユーザー インターフェースを開く関数は、アクティブなドキュメント、フォーム、スプレッドシートの Ui オブジェクトの showModalDialog()) メソッドまたは showSidebar() メソッドに、HTML ファイルを HtmlOutput オブジェクトとして渡す必要があります。

これらの例には、便宜上、いくつかの追加機能が含まれています。onOpen() 関数は、インターフェースを簡単に開くことができるカスタム メニューを作成します。また、HTML ファイルのボタンは、google.script.host API の特別な close() メソッドを呼び出してインターフェースを閉じます。

コード.gs

// Use this code for Google Docs, Slides, Forms, or Sheets. function onOpen() {   SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.       .createMenu('Dialog')       .addItem('Open', 'openDialog')       .addToUi(); }  function openDialog() {   var html = HtmlService.createHtmlOutputFromFile('Index');   SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.       .showModalDialog(html, 'Dialog title'); }

Index.html

<!DOCTYPE html> <html>   <head>     <base target="_top">   </head>   <body>     Hello, World!     <input type="button" value="Close"         onclick="google.script.host.close()" />   </body> </html>

このユーザー インターフェースを初めて表示する場合は、onOpen() 関数をスクリプト エディタで手動で実行するか、ドキュメント、スプレッドシート、フォームのエディタのウィンドウを再読み込みする必要があります(スクリプト エディタは閉じられます)。その後、ファイルを開くたびに数秒以内にカスタム メニューが表示されるようになります。[Dialog] > [Open] を選択して、インターフェースを表示します。