GAS(Google Apps Script)にGETリクエストして、「値を取得する」を試してみました!
これを使えば、
- WebAPIなどから取得した値をリクエストしたタイミングで取得
- スプレッドシートの内容を取得
などなど、いろいろなことができますよ!
GETするためにすること
やることの流れは
- ソースを書く(主にdoGet)
- ウェブアプリケーション公開設定
- GETリクエストする!
といった流れです!
ソース
最低限必要なのはコレ!
function doGet(e) { return ContentService.createTextOutput(JSON.stringify( { 'name': 'ils', 'dat' : 'data' } )) .setMimeType(ContentService.MimeType.JSON); }
実装したもの
今回はスプレッドシートと連携するものを試しに作ってみました。
「Gas2SpreadSheet」というオブジェクトを使っている、スプレッドシートについての処理は、この記事のものを使っています。
function getDatetimeString() { var date = new Date(); var time = "" + date.getFullYear() + "/" + (date.getMonth()+1) + "/" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes(); Logger.log(time); return time; } function doGet(e) { console.log("in doGet ---------"); var dat = Gas2SpreadSheet.readRange(1, 2, 2, 1); // シートにログる Gas2SpreadSheet.writeSheet(getDatetimeString(), 4, 1); var name = dat[0][0] var data = dat[1][0] return ContentService.createTextOutput(JSON.stringify({'name': name, 'dat' : data})) .setMimeType(ContentService.MimeType.JSON); }
Webアプリ化する
GETリクエストは、作ったロジックをWebアプリケーション化することで使えるようになります。
ということで設定をしましょう!
Webアプリ化する設定
まずはメニューから「公開」を選択。
1番上の「Webアプリケーションとして導入」を選択しましょう。
すると設定画面が出てきます。
「プロジェクトのバージョン」の説明欄に適当な説明を入力しましょう
最初なので「初版」でいいと思います。
公開設定などはお好みで!
入力が済んだら「OKボタン」を押しましょう!
アプリにアクセス!
設定を完了すると、このように設定したアプリのURLが表示されます。
これをコピーして、ブラウザからアクセスしてみましょう!
JSON形式のテキストが表示されたら成功です!
テストのリンクと表示URLの違い
設定完了後のURL表示周りを見ると
- 現在のウェブアプリケーションのURL
- ウェブアプリケーションで最新のコードをテストします
がありますよね?
「これなんの違いがあるの?」
「現在のウェブアプリケーションのURL」の場合
「現在のウェブアプリケーションのURL」は、いわば本番環境。
つまり外部などからアクセスする場合のURLです。
「どこかからGETリクエストして使うぞ!」
となったときは、コチラの「本番環境の」URLを使います。
しかし本番環境の方は、バージョンを上げないと修正した処理が反映されません。
なので
- ロジック修正
- Webアプリ化する設定
- URLにアクセス
という手順が必要があります。
ちなみに設定は、「プロジェクトバージョンを新しくするだけ」です!
「ウェブアプリケーションで最新のコードをテストします」の場合
「ウェブアプリケーションで最新のコードをテストします」のリンクはというと、テスト環境です。
「ロジック修正→テストURLにアクセス」で処理の確認はできるようです。
参考
こちらを参考にしました。ありがとうございました!
あとがき
Webを経由したものというのが、こんなに簡単に作れるんだなぁとしみじみ感じております。
あまり詳しくない界隈だから余計にですね(笑)