GAS(Google App Script)、どんなことができるの?使って勉強したことまとめ。

サーバーレスでスクリプトを実行することが可能な、
Googleのサービスの一つであるGAS(Google App Script)。
仕事でGASとSpread Sheetsを使って色々遊んだので、そのナレッジを記事にしていく。
GAS(Google App Script)とは?
Google App Script(以下GAS)とは、公式ドキュメントによると、
ものである。
一番大きな特徴は、Googleのサーバー上でスクリプトを実行可能という点で、
エンジニアにとって大変なことのうちの一つである、
「サーバー構築・保守」を全くやる必要がなくなるのである。
簡単なAPI作成や、定時処理のバッチ、Webサービス等はGoogleに任せてしまえるということである。
(もちろん、セキュアな情報を扱うであるとか、自社の膨大なデータを扱うであるとか、
WebサービスをBtoC、BtoBで提供するであるとか、使うことができない・適さない場面もあるので気を付けよう。)
早速使ってみる(準備編)
利用は非常に単純。
まずは、Googleのアカウントを取得して、ドライブに遷移しよう。
そこで、以下の画像のように
右クリック⇒「その他」⇒「+アプリを追加」をクリックする。
すると、「ドライブにアプリを追加」という画面が出てくるので、
検索窓に「google app script」と入力してEnterを押して検索する。
一番上に、以下の画像のように「Google App Script」が出てくるので、「+接続」を押せば準備完了だ。

接続したら画面を閉じて、ドライブに戻ってくる。
そこで、再び「右クリック」⇒「その他」⇒「Google App Script」を選択することで、アプリケーションを作成できる。
早速使ってみる(実行編):スプレッドシートと連携してみる。

それでは早速使ってみる。
まずは、恐らくGASを使う際にDB代わりによく連携していくことになるであろう、
スプレッドシートの連携から。
まずは、スプレッドシートをどこでもいいので、ドライブ上に作成する。
内容は適当でいいのだが、とりあえずこんな感じ。
ここで、URLをコピペしておき、
GAS上には以下のコードを挿入する。
function myFunction() { var ss = SpreadsheetApp.openByUrl('【上記で作成したスプレッドシートのURL】'); }
これで、スプレッドシートの取得は完了。
中身を見てみるために、コードを以下のように変更して結果を見てみる。
function myFunction() { var ss = SpreadsheetApp.openByUrl('【スプレッドシートのURL】'); Logger.log(ss); } # Spreadsheet
結果には「Spreadsheet」と表示された。
Javaでいうオブジェクトの型名が表示されるようなものだととりあえず解釈して進める。
Idを取得して、openById()を使ったり、スプレッドシートを直接GASで連携していればgetActiveSpreadsheet()を使うことも可能。
ここで期待しているのは、スプレッドシートの中身なので、実際に取り出していくために以下のようにコードを変更。
function myFunction() { var ss = SpreadsheetApp.openByUrl('【スプレッドシートのURL】'); var sh = ss.getActiveSheet(); var a1 = sh.getRange("A1").getValue(); Logger.log(a1); } # index
これで、セルの中身を取得するところまでできた。
ただ、実際はセルの中身一つだけより、複数取得する場合や、検索して取得することが多くなるだろう。
複数取得する場合、以下のようにコードを変更する。
function myFunction() { var ss = SpreadsheetApp.openByUrl('【スプレッドシートのURL】'); var sh = ss.getActiveSheet(); var a1 = sh.getRange("A1:B2").getValues(); Logger.log(a1); } # [[index, title], [0.0, これはテストだよん。]]
これで、二重配列としてセルの中身を複数取得することができた。
ちょっと面倒だが、
Array[行(1, 2, 3…)][列(A, B, C…)]として入っていることには注意。
例えば、「A2」が欲しい場合、Array[0][1]を指定してあげる必要がある。
「B5」がほしければ[1][4]といった具合である。
A列が欲しい場合、[0][i]のように指定してfor文を回す必要が出てくるなど、
操作の際にやや頭を使うので気を付けよう。
GAS(Google App Script)まとめ
今回は簡単なDB作成から情報取得までを行った。
次回はDBを検索して情報を取得する方法や、
最終的にはSlack Botの作り方まで解説していきたい。
-
前の記事
ケルト、ファンタジー音楽好き必見!フランスの作曲家、Peter Crowleyについてまとめてみた。 2018.08.27
-
次の記事
公衆電話ゲー?30円で電話ボックスの中から脱出せよ!「公衆電話」やってみた。 2018.09.04
コメントを書く