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のボットをつくった過程を日記としてまとめてます。興味があればぜひのぞいてみてください。