GoogleSpreadsheetを使って簡易DBを作る

##はじめに
Unityなんかでゲーム制作をしていると、スコアランキングなんかを作りたい時があります。
ふつうはMySQLなんかのDBを使って書くといいと思います。しかしサーバーの維持費がかかったりします。そんな時は、Google Spreadsheetを使って節約しましょう
##Google スプレッドシート
最近は、オフィスソフトウェアもオンラインで動くものが増えてきて、Googleスプレッドシートも、いわゆる、ウェブ上で動作する表計算ソフトウェアです。
簡単にファイルを共有でき、Googleドライブなんかに保存されるので、個人でのファイル管理に割く手間を省いてくれます。

表計算ソフトということで、マクロ機能が付いています。
さらに、このマクロを、ウェブアプリケーションとして公開という機能があります。
この機能を使うと、GETとPOSTを受け取ることができます。

余談ですが、Google Formなんかもウェブアプリケーションの類でしょうか、最近使う人がとても増えてきましたね。自分で書かずとも、簡単にウェブフォームを作ることができるので、とても便利ですね。その結果をGoogleスプレッドシートで見れてとても良いですね。

##マクロ
適当にスプレッドシートを作成した後、ツール>スクリプトエディタと開きます。

ここで、Google Apps Script=マクロの言語を自由に記述できます。
このGoogle Apps Scriptとかいうやつは、だいたいのグーグルサービス共通で、様々なサービスのAPIが使えます。よい!無料部分でだいたいなんでもできます。めっちゃ便利
詳しくは解説しないので、[ここらへん](https://cartman0.hatenablog.com/entry/2017/12/17/Google_Apps_Script%E3%81%AE%E7%84%A1%E6%96%99%E5%88%B6%E9%99%90%E3%83%A1%E3%83%A2)とか読んでください。

その中で、doPostとdoGetという関数名にすると、HTMLのPOSTとかGETとかを受け取れる。[参考](https://developers.google.com/apps-script/guides/web)

スクリプトエディタに、次のように追加します

function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
sheet.getRange("A1").setValue('HelloWorld');
}

適当にデバッグボタンを押して実行します。(デバッグボタンの横にある関数一覧をdoGetにしておきましょう)初回実行の際は、なんか、スプレッドシートにアクセスの許可が必要です、なんたらかんたら~って出るので、適当に許可しましょう。

A1セルに、”HelloWorld”と表示されましたか?
でたら成功です。

まだまだこれでは普通ですね。スプレッドシートに戻ってA1セルを消しておきましょう。

##URLでアクセスできるようにする

メニューから、公開>ウェブアプリケーションとして導入を押します。
そしたら、なんか出るので、アプリケーションにアクセスできるユーザーを「全員(匿名も含む)」に変えて導入を押します。

でてきたURLをコピーして、別のタブで開いてみると……何も起きませんね。(一見では
でも、スプレッドシートに戻ってみると、”HelloWorld”とあるはずです。あら便利。

##パラメータを受け取って、結果を返してみる。

function doGet(e) {
var req = "Dance to Dance";
var response = "failed";
if(!!e && !!e.parameter && !!e.parameter.text) {
req = e.parameter.text;
}
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var ary = sheet.getRange("A1:A10").getValues();

for(var i = 0; i < ary.length; i++) {
if(ary[i][0] == “”) {
sheet.getRange(“A” + (i + 1)).setValue(req);
response = “success”;
break;
}
}
return ContentService.createTextOutput(encodeURIComponent(response)).setMimeType(ContentService.MimeType.TEXT);
}

先ほどと同じように、URLも発行します。(保存しなおす度にURLを再発行する必要があります)

そのURLの最後に……

https://script.google.com/macros/(……中略……)/exec?text=yeah

GET送信のパラメータを付け加えてアクセスすると……
success, failedなんか出たりします。
ここで、スプレッドシートに戻ってみると……

はい、yeahというのがA1かA2セルにあるかと思います。
やばい、もうめっちゃDBじゃん。

あとは、リファレンスを読むなり、VBAができるならそれっぽい要領で上手くできると思います。

かといって、私は、このDBをゲームのスコア管理ぐらいにしか使っていませんが……!よいライフを

CD買った。

1月の頭にCD買いました。
ネクライトーキーというバンドのONEというアルバムです。年明けてしまいましたが、先月のに発売されたやつです。
CD発売付近に知り、めっちゃはまりました。
キャッチーさがやばいです。そして中毒性。曲を書いている人がボカロも使っている方だということで、何となくネット音楽のような雰囲気もありますね。
特に「めっちゃかわいいうた」が、リズムのキャッチーさと、歌詞の適当なパワー感が好みです。やっぱりめっちゃいい。
それと、「許せ!服部」という曲がめっちゃすごい電波曲ですね。中毒性が異常です。ナユタンっぽいセンスもあります。つまるところ、自分の好みのアーティストっぽい曲が流れてたら聞き入っちゃうよねっていう話です。エモい。

それと、ボーカルのアニメ声、何気に気になりますけど、2回目に聞くときになれますね。
慣れて逆にこれじゃないとなんか足りないみたいな感じになります。すごい。音楽聞くことってやっぱり大切だなぁなんて思いました。
公式サイトは、
https://necrytalkie.jp/
です。すごい。

最近、作曲も頑張りたいなぁっと前でちょこっとつぶやいたせいで、いろいろ音楽聞いてしまっています。
やっぱりインプットが大切だなぁと改めて思うようになりました。
理論はさっぱりわかりません。もちろん。
コード進行とかいろいろ語れるようになりたいんですけど。

デレマスの音楽になんかも結構影響されちゃってますね仕方ないです。
デレマスのCDというか、アイマスのCDもちょこちょこ買ったりしているんですが、多すぎてやばいですね。アレ。
破産します……。
まあ自分の気に入った曲ばっか買っているわけですが。
やっぱりレンタルとか利用して効率よく集めたいなぁと思ってたりします。
CDって基本、定価でしか買うことができないのでお金がすごくかかる。おまけにアイマス系はちゃんとグッズ展開もしているのでそういうのも買っていくとなるとやっぱりお金がたくさん必要ですね。
働いてますけど。ミリシタの曲も結構最近聞いたりしていい曲多いですよねあっちも。はぁ、本当に全部プレイリストに入れたいと夢がいつかなうのやら……。

私は、趣味はいろいろ広げるタイプなので、いろいろ広めに行きます。
仕事がつらひぜ。

それと、そういえばついに暖房を買いました!
うれしい。あったかいのが恋しい。早く届かないかなぁ……。
寒いのなら厚着すれば行けるとか言っていた時代がありました。(去年なども暖房なかった……
恐ろしい。

やっぱり寒い。

あけましておめでとうございます

あけましておめでとうございます
ついに2019年がやってきましたね。

抱負ややりたいことは、この前書きました。
寝正月してます。えっと、仕事も頑張ります。

今これを聞いています。
ミライアカリさん良い……