【NeosVR】酔っぱらいながらGASでAPIを作る

公開:2020/12/15
更新:2020/12/15
10 min読了の目安(約9000字TECH技術記事

この記事はNeosVRアドベントカレンダーの16日目
及び飲酒プログラミングアドベントカレンダー16日目の記事です
本当は別日でしたが想定より早く飲みたくなっちゃったから仕方ない。
最後にクラフトビール紹介コーナーもあるよ!!!!

はじめに

はじめまして、銀鮭です。
今回はNeosVRで「ブラウザで管理できるデジタルフォトフレーム」を作っていきます。
次の縛りで作っていきます

・google driveを使う
・GAS(Google App Script)を使う
・アルコール駆動開発

今回の酒

とりあえずビールをキメていきます。

ビールといっても超モッタリ甘さマシマシココナッツ入り。度数14%のヤバいやつです。

記事自体もこれを飲みながら書いてるので段々酔っぱらっていくかもしれません
本当においしいのでおすすめです。

https://151l.shop/?pid=154038870

NeosVRってなに

未来のVRSNSです、興味のある方はマシコの知らないNeosVRの世界を読んでください。

GASってなに

Google App Scriptの略でとにかく便利です。
・javascriptを実行できる
・APIを作れる
・サーバーを借りたり設定しなくていい
・共同編集やコピーも簡単
・Googleの各種サービスとの連携がしやすい

実際に確かめる

とりあえず簡単なAPIを作ってみましょう。
まずはURLを叩くと「こんにちは」とだけ返すAPIです。

ソースコードはこちらになります。

このURL
を叩くと実行され、「こんにちは」と返ってきます。

中身はたったこれだけ。

// GETリクエスト処理
function doGet(e) {
  var res = ContentService.createTextOutput('こんにちは');
  return res
}

サーバーがいらない

NeosVR、内部で作られるものは基本オープンソースなので誰でも解析や改変が可能です。
しかしAPI側はコードを共有できず、ブラックボックスでした。

GASはサーバーを用意する必要がありません。
google スプレッドシートやgoogle ドキュメントの仲間だと思ってください。
共同編集や共有編集の設定も可能。
誰でもいじれるので、NeosVRと相性が良いのではないでしょうか?
言語もみんな大好きjavascript。ブラウザで使われているのと同じV8ランタイムも使えるので最高です。

getの値を取得

次に、getの値を取得してみましょう
(URLを使ってスクリプトにパラメータを渡すことが出来ます。)

// GETリクエスト処理
function doGet(e) {
  let name = e.parameter.hogehoge
  let res = ContentService.createTextOutput(name);

  return res
}

URLの後ろに?hogehoge=aaa とかつけると、aaaが結果として帰ってきます。
簡単ですね。
変数宣言がvarからletになってますね。本質とは関係ないので特に気にしないでください。
これを使っておくとイマドキのjavascript開発者なオーラが出るのでいい感じです。
詳しい違いはjavascriptの話になるのでググってください。const使えよとかいう苦情は受け付けません。

google driveと連携

なにを作っているのか忘れたところで、もう一度テーマに戻ってみます。
「ブラウザで管理できるデジタルフォトフレーム」のAPIを作っているんでした。

アップロード部分を自分で作るのはダルいので、既にあるサービスを使っていきましょう。

今回はgoogle driveを使います。(google photoはちょっと面倒くさそうだった)
写真入れる為のフォルダを作成して、共有設定で「リンクを知っている人ならだれでも閲覧」的な奴にしましょう。

下記のスクリプトを書きます、まぁ結構コピペですけど。
GASは資料が豊富なんじゃ~~~~

これをAPIとして使えるようにします
メニューから「公開」→「ウェブアプリケーションとしてなんたら」をクリック

ダイアログが出てくるのでこうしましょう

酔っぱらってて少し記憶が飛んでるけど、初回実行時は認証的なアレが出てくるかも。
まぁ許可します。
この画面になったら詳細を押すと、「うんたらかんたら(安全でないページ)に移動」が出てきます。
これは日本語に訳すと「承認」という意味らしいです。ちょっと長い文章は酔っ払いには分からない。

で、URLが出てきます。

コピペして、末尾に「?index=1」を付けてアクセスします
どの画像を表示するか、これのパラメータで制御してます。

https://script.google.com/macros/s/AKfycbydnW2tiz5rvIZ-9ZizUoqoYjryWpqc2N6QAX-JbN3sSVYsihUp/exec?index=1

結構酔っぱらってきました。

コードを修正した場合は、Project Versionを変えましょう

ちなみにこのあたり、クソ酔って何故かいろいろ無駄な事をしてました。
良く考えたらビールとはいえ14%の700mlってやばいんだよなぁそれって日本酒じゃん。
まぁお酒はオーガニックなので多分健康にいいでしょう。
植物はビタミンとかで健康にいいらしいですよ?

結局コードはこうなりました

GASはいいゾ~
他にもいろんなgoogleのと連携出来るぞ。
googleのじゃなくてもslackとかと連携出来るぞ。
詳しくはググってみよう!

NeosVR部分を作る

なんだかんだ泥酔して深夜3時、VRゴーグルを被ってあっちの世界に入りましょう。
画像をAPIから取得して切り替えるのはこの記事が参考になりそうです。というかこのLogiXをご本人からもらったので、改造していきましょう。

こんな時間なのに、人がメッチャ居ました。
そういうわけで、ととがんまさんと、kazuさんに手伝っていただき、いい感じになりました。
(漏れてる方がいたらごめんなさい、かなり泥酔していたので。)

ただ、5枚中の2枚しか何故か出ません。
APIからの値は正常ですがどうも反映されてないみたいです。

時刻は午前5時、外では鳥のさえずりが。
今日はここまでにします。不貞寝だとか酔いつぶれたとかじゃないですよ?

2日目

あくら柚子レモンHazyを飲んでやっていきましょう。

アルコール駆動開発はいいぞ。

原因はすぐに分かった。DirectLoadというプロパティがオフになってた。
なんの設定か分からないけど、多分URLから直接ロードするときはオンにしないと反映されない的なあれなんでしょうか?

そういうわけでこうなりました。8Kモードで撮影したので細かい箇所は拡大してみてください。

対戦ありがとうございました。

出来た

こんな感じです

https://twitter.com/sirojake/status/1338128326574055424

今年飲んだおいしかったビールとか

アドロイトセオリー ニゲイション

今回飲んだビール。すごい。既に紹介したので説明は省くけどうまい。

Uchu Infinity(うちゅうブルーイング)

神のビール。圧倒的なフルーティー。販売開始から30秒で売り切れた(マジ)
全部あり得ないほど旨いうちゅうビールの中でも別格の味だった。
国内では初の製法で作ってるらしい。

http://beervolta.com/?pid=154878025

Magnolia / マグノリア(VERTERE)

入手性、味、値段ともに最高。クリアなフルーティーさが溜まらない。
これが恒常的に販売されてるのはやばい。7回くらいリピートした

http://beervolta.com/?pid=153859805

Boogie Woogie Hazy Pilsner(うちゅうブルーイング)

ピルスナーなのにしっかりとしたうちゅうの味で、流石だと思った。濃いビールのあとに飲む奴ってあんまりないけど、これは最高。まぁうちゅうだから販売開始3分で売り切れるけど。
写真とってなかった。

https://uchubrew.shop-pro.jp/?pid=151637392

WHAT CAN Be(びあマ神田店×WCB)

おいしいけどこれ記念ビールだからもう多分発売されないんだよね。

https://www.westcoastbrewing.jp/beer#/what-can-be-hazy-double-ipa-abv-80/

P.A.I.N.(Veil)

アメリカのブルワリー。
ここのビールは国内では手に入らなかったが、アンテナアメリカが10月くらいに仕入れてくれた。
サワー系が有名と聞いてて正直他は期待してなかったけど、ごめんなさいってなった。

https://www.malt-st.com/SHOP/BE-NG-Vl-04.html

Space Hazy(うちゅう×サンクトガーレン)

例年はけやき広場ビール祭りでしか飲めないけど、今年は中止で各店舗まで流れてきた。
すごくうまかった。当然完売。

酔ってたので写真はなし

https://www.sanktgallenbrewery.com/spacehazy/

Mango IPA(サンクトガーレン)


ホップの香りとマンゴーの香りが程よいバランスでマッチしていて大当たりだった
一緒に飲んでいた友人も3回くらいおかわりしてた。

https://www.sanktgallenbrewery.com/beers/special/mangoipa.html

### Noa Pecan Mud Cake Stout(Omnipollo)

味が独特なスタウト。スウェーデンのブルワリーだけど、どれ飲んでも大抵やばい。
2000円くらいした記憶がしたけど1000円だった。結構安い。

http://beervolta.com/?pid=151928335

ティラミス スタウト ウィスキーバレルエイジド(Barrel House Z)

これが1000円は安すぎる。
バレルエイジドってのは樽で発酵させたビール。甘ったるい、濃い。最高。
ここのブルワリー、何飲んでもうまい気がするな。

http://beervolta.com/?pid=141335216

Barrel Aged ¡Viva La Beaver!(Belching Beaver)

大好きなBelching Beaverが作ったバレルエイジド。
ここのピーナッツバターミルクスタウトはスタウトにハマった原因。

http://beervolta.com/?pid=150642144

Melty Hops(Belching Beaver Brewery × revision)

Belching Beaver Breweryとrevisionのコラボなんておいしいに決まってる。
revisionも大好きです。Disco Ninja最高。
この手のコラボビールは再販されないのが悲しい

http://beervolta.com/?pid=149898926

Shiga Kogen Imperial Indian Summer Saison (玉村本店)

鈴木酒販に行ったらおひとり様2個だったので買った。
飲みやすいのにしっかりとした味で無限に飲める。まぁすぐ売り切れたけど。
玉村本店は志賀高原ビールの別名義だったか別ブランドだったか何か。
この飲みやすさで8.5%は危険。

http://beervolta.com/?pid=149494709

Neko Nihiki(伊勢角屋)

安定しておいしい。Neko Sanbikiまだ飲めてない。買いたいけど既に冷蔵庫が酒で一杯。

https://www.biyagura.jp/c/cat-04/cat-05/cat-79/217

Cloudy Yellow Sky(Y.Market Brewing)

めっちゃ良かった。圧倒的なアロマ感とかすかな柚子の香りでまた飲みたい。
余りにうまくて5本くらい買ってしまった。恒常入りはしないらしい。
もう作らないのかなぁ?

https://craftbeer.nagoya/our-beer/beer_fruit/cloudy-yellow-sky/

柚子レモンHazy IPA

大好き。これの入荷情報があるとわざわざ飲みに行く程度には好き
今年はまさかの通販があって15本買ってしまった。
飲みやすくコスパもいい。最高のビール

http://aqula.shop-pro.jp/?pid=155655535

良かった出会い

九州旅行で終電失くして岡山に泊まったが、ひでぇ酔っ払いがいて一緒に飲んだ。名前も連絡先もしらないけど、あのおじさんは元気かな?楽しかった。

びあマ神田にBelching BeaverのTシャツ来て行ったら隣の方とまさかの服装被り。
アンテナアメリカの方でいろいろ教えてもらった。良い出会いだった。

去年だけど、六本木のbrewdog行ったらまさかの創始者の方がいた。うちゅうの隊長もいた。
サインもらって一緒に写真撮ってもらった。最高の出会いだった。

今年もいっぱい飲めて偉いね













以上、「今年飲んだ最高のビールを紹介する」でした!!!!!!!

この酒を飲んだ人

https://untappd.com/user/ginjake
フォローよろしくお願いします