GASのWEBアプリURLとデプロイの関係


 

GASをデプロイして、WEBアプリのURLを使う時に
よく「あれっ」うまく更新されていないということになるので、忘備録です。

WEBアプリのURLは、「新しくデプロイ」をすると変更されます。
しかし、「デプロイの管理」から進めると、更新されません。


なので、GASスクリプトは更新したけれど、WEBアプリのURLを変更したくない時は、「デプロイの管理」から進めることが必要です。

次に、「デプロイの管理」から進むと

となり、ペンマークをクリックします。

ここでなにもせずに、

「デプロイ」ボタンを押すと、GASの変更は反映されません。
通常の感覚ですと、保存のようなイメージで上書きされて、GASも更新されるように思うのですが、
更新されません。

更新するには、

「新バージョン」を選択してから、「デプロイ」ボタンを押します。

こうすると、GASの更新が反映され、WEBアプリのURLはそのまま使えます。


後ついでに、WEBアプリでログを確認して、デバックしたいときがあります。
しかし、GASのLogger.logではWEBアプリ実行時のログが見れません。

なので、Googleドキュメントに記録することをお勧めします。
以下のような関数で、記録するとよいですね。


const LOG_DOC_ID = 'ドキュメントのIDを指定';

writeToDoc("なにかテキスト"); //直接記録したいとき

//ためてから記録したいとき
const logs = [];
log("ためたいテキスト");
writeToDoc(logs.join('\n'));

  function log(line) {
    // 実行中はメモリに貯め、最後に一括書き出し
    logs.push(`[${Utilities.formatDate(new Date(), tz, 'yyyy-MM-dd HH:mm:ss')}] ${line}`);
    // ついでに実行ログにも出す
    Logger.log(line);
  }

// 指定ドキュメントへ追記
function writeToDoc(text) {
  try {
    const doc = DocumentApp.openById(LOG_DOC_ID);
    const body = doc.getBody();
    body.appendParagraph('------------------------------');
    body.appendParagraph(text);
    doc.saveAndClose();
  } catch (err) {
    // 最低限のログは残す
    Logger.log('writeToDoc failed: ' + err);
  }
}

WEBプログム、WEBデザインなどの制作については、以下を御覧ください。

WEBプログム、WEBデザインなどの制作