【Web】GASで公開したHTMLページのURLをサーバ側gs/クライアント側JavaScriptコード上で取得する【Google Apps Script】

投稿日:2021年3月9日
最終更新日:2021年3月9日

GASのHTMLページのURLをコード上で取得したい

先日web1weekというイベントに参加してGoogle Apps Script上にHTMLを置いてWebアプリを公開したのだが、コード上でURLを取得する方法を調べたのでメモしておく。サーバ側の.gsコード上で取得する方法と、クライアント(webブラウザ)側のJavaScriptコード上で取得する方法の両方を書く。

 

サーバ側gsコード上で取得する

まずはサーバ側の.gsコード上でURLを取得する方法。.gs上では以下で簡単に取得できる。

ScriptApp.getService().getUrl();

私は以下のような関数を追加して、戻り値としてURLを取得できるようにした。

function getGasUrl() {
  var url = ScriptApp.getService().getUrl();
  return url;
}

戻り値の形式はString型となる(詳細はこちらの公式ドキュメント参照)。私はこの関数を使って、クライアント側JavaScriptでURLを取得した。

 

クライアント側javascriptで取得する

私はクライアント側でgsコードのfunctionを実行して、戻り値のURLを取得した。gsコードのfunctionをクライアント側JavaScriptで実行するには色々と方法があるが、例えば以下のように<?と?>で挟んで読み込む方法がある。

<? var url = getGasUrl(); ?>

これでString型でurlを取得できる。また、以下のようにSuccessHandlerを使って、getGasUrl()の戻り値を適当なfunction(ここではtestとした)に渡して、URLの取得が成功したら、URLを使って何かしらの処理を実行することもできる。

google.script.run.withSuccessHandler(test).getGasUrl();
  function test(url){
    //getGasUrlの戻り値(url)を使った処理
  }

意外と苦戦したので誰かの参考になれば。もっと良い方法ありそうだけど。

 

GASでLINEのボットとかつくってます

GASでLINEのボットをつくった過程を日記としてまとめてます。興味があればぜひのぞいてみてください。

【Web】Google Apps ScriptでリマインダーLINE botをつくろう日記

0

投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください