Amazonで商品を見るセール会場へ

GAS│固定のURLで内容を最新にする方法

gas-deploy-fixed-url

現在の仕様ではGASでウェブアプリとしてデプロイすると、毎回違うURLになってしまいます。

ウェブアプリ側でブックマークされると古い内容のまま使われてしまうため、作成者側の設定で工夫が必要です。

URLを変えずに内容だけ新しくするには、「デプロイを管理」から最初のデプロイを編集し、バージョンを最新に切り替えます。

本記事ではGASの固定のURLで内容を最新にする方法を、画面つきで紹介します。

目次

[GAS]固定のURLで内容を最新にする方法

デプロイの設定手順を把握すれば簡単に更新できます。

STEP
テストコード

Google Apps Scriptにアクセスして、下記のHTML(名前はindex)とスクリプトを作成します。

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
     <h1>Hello world!</h1>
     version 1.0
  </body>
</html>
function doGet() {
  var html = HtmlService.createTemplateFromFile('index');
  return html.evaluate();
}
右上のデプロイボタンから新しいデプロイを選択する画面。
STEP
デプロイ

右上のデプロイボタンを押して新しいデプロイを選択します。

次に歯車アイコンを押してウェブアプリを選択します。

説明には固定URLと入力しておきます。

最後にデプロイボタンを押します。

ウェブアプリを選択し、説明に固定URLと入力してデプロイを実行する画面。

発行されたURLを開いて表示を確認します。

発行されたURLを開いてブラウザ上で表示を確認する画面。

テキストが表示されました。

テキストの内容が表示されたブラウザ画面。
STEP
新しくデプロイ

テキストの内容を更新します。

version 2.0

デプロイ>新しいデプロイを実行します。

内容が更新されていることを確認します。

新しいデプロイを実行して内容が更新されたことを確認する画面。

新しくデプロイするとURLが変わるため、最初に発行したURLへ最新の内容を反映させます。

STEP
固定のURLで内容を最新にする

デプロイ>デプロイを管理

最初のデプロイを選択して、鉛筆アイコンを押します。

バージョンを先ほどデプロイした最新の内容に切り替えてデプロイします。

デプロイの管理画面で鉛筆アイコンを押し、バージョンを最新に切り替えてデプロイする様子。

以上で、最初のURLのまま最新の内容に更新できました。

最初のURLのままで最新の内容に更新されたことを確認する画面。

不要になったデプロイはアーカイブしておきましょう。

不要になったデプロイをアーカイブする操作画面。

アーカイブではなく完全に削除したい場合は、右上のメニューの「以前のエディタを使用」から従来のUIに切り替えます。

ファイル>版を管理から不要なバージョンを削除します。

従来のUIに切り替え、ファイルメニューの版を管理から不要なバージョンを削除する画面。

[GAS] 最新のデプロイしたWebAppのURLを取得する方法

最新のデプロイしたWebAppのURLを取得する方法を追記します。

function doGet() {
  var value = ScriptApp.getService().getUrl();
  Logger.log(value);
  var html = HtmlService.createTemplateFromFile('index');
  html.btn= value;
  return html.evaluate();
}
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
     <h1>Hello world!</h1>
     <button type="button" onclick="window.open(<?=btn?>)">最新版へ</button>
  </body>
</html>

下記のような記述でも取得できます。

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
     <h1>Hello world!</h1>
     version 3.0
     <? var url = ScriptApp.getService().getUrl(); ?>
     <button type="button" onclick="window.open(<?=url?>)">最新版へ</button>
  </body>
</html>

[GAS] スプレッドシートからURLを参照する方法[応用]

上記の版管理が手間な場合は、スプレッドシートに最新のURLを記載して参照する方法もあります。

ハイパーリンクなどを設置するときに便利な手法です。

STEP
スプレッドシートにURLを記入

まずはスプレッドシートにURLを記入します。

スプレッドシートにURLを記入した画面。
STEP
GASの実行

コードを書き換えてデプロイを実行します。

var id = 'スプレッドシートのID';
var value = SpreadsheetApp.openById(id).getSheetByName("シート1").getRange("A1").getValue();

function doGet() {
  var html = HtmlService.createTemplateFromFile('index');
  html.btn= value;
  return html.evaluate();
}
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
     <h1>Hello world!</h1>
     version 3.0
     <button type="button" onclick="window.open(<?=btn?>)">最新版へ</button>
  </body>
</html>
STEP
確認
ボタンを押してスプレッドシートに指定したURLへ遷移することを確認する画面。

ボタンを押すと、スプレッドシートに指定したURLへ遷移します。

最新のデプロイURLなどを記載して利用できます。

動かなくなったときのメッセージ別の対処はGAS│エラーの意味と対処法にまとめました。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

GASでウェブアプリケーションを作る記事は、ほかにもあります。

まとめ

GASのウェブアプリは、新規デプロイを行うたびにURLが変更される仕様です。

「デプロイを管理」での更新とスプレッドシート参照を使い分けることで、URLの管理が容易になります。

用途に合わせて設定を試してみてください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次