
先日「Slackがカップル専用アプリだった件」という記事を拝見しまして、その衝撃たるやそうそうたるものでした。
その手があったか、と。
僕はもう辺りを警戒しながら、恥を忍んで、おずおずとBetweenを開く必要はないんだ、と。
思い立ったが吉日。善は急げです。
もともとお互いにBetweenには多少の不満があって、ちょうど乗り換えを検討していたタイミングでした。
しかし、「Slack」のデザイン性の高さには食いついたものの、英語オンリーのUIや「Channel」等の馴染みのない機能に難色を示し気味。
僕のプレゼン力が試される時です。
僕「この『Slack』作ったスチュワート・バターフィールドっていう人、海外でめっちゃ流行った『Flickr』いう写真のSNS作った人なんだけどさ。
本当はゲーム作りたかったんだって。
でもゲーム作ってる途中で予算が尽きて、しょうがなく作りかけのゲームをその写真のSNSとして公開したらめっちゃヒットしてさ。
『これでゲームが作れるぞ!』と思ったら優秀すぎてYahoo!に捕まってゲーム作らせて貰えないのwwww
でさ、3年たってやっとYahoo!から開放されて、『今度こそ!』ってゲーム作ったんだって。どうなったと思う?
全然売れないまま予算尽きてまたゲームの機能流用してできたのがこの『Slack』wwwwそしてまた大ヒットwwwなんでだよwwwwwwww」
いけた。
サーバー立ててNode.js入れてHubot入れて、というのが面倒臭すぎたのでGASの力を借りてさくっと実装します。
GASとは
「Google Apps Script」の略。
Googleの他のサービスを操作したりできる、Googleドライブ上で動くJSみたいなやつ。アナリティクスのデータをスプレットシートに吐き出すやつとかが多分有名。
Botの作り方は主にこちらを参考にさせていただきました。
ありがたいことに、偉大な先人がライブラリを作ってくれているので、それにならえば簡単にBotが作れるみたいです。
適当に「slack」みたいなフォルダを作って、
あたりを入れておけばいいと思います。
カップル専用アプリとして「Slack」を使う場合、2人しかいない前提のためMentionを飛ばし合うことなく「全ての発言を通知する」設定で使うことになります。
GASでは「毎日決まった時間に実行」みたいな設定もできるのですが、Botの発言が毎日通知されるのも憂鬱なので、ここでは「Bot宛の発言をトリガーにアクションを返す」形で実装します(通知をしないBot用のChannelを作ることもできますが極力シンプルにまとめたいので)。
{% image "/assets/img/blog/2016/1/15/r2_c2.png", "Add an app or custom integration" %}
チャンネルの設定から「Add an app or custom integration」を選択し、Slack Appの「Outgoing WebHooks」を導入します。
{% image "/assets/img/blog/2016/1/15/r1_c5.png", "Integration Settings" %}
どのチャンネルで発言を許可するか。
反応するキーワード。「,(コンマ)」区切りで複数指定可。
GASのURLを入れる。
GASで使うのでメモしておく。
真っ先に思いつくのがこれで、Googleカレンダーとの連携ももちろんGASでお手のものなのですが、うちではあまりスケジュールなんて立てないし、Betweenの共有カレンダーもほぼ使っていなかったので今回はなしで。
これも最初はこのGoogleカレンダーを使えばいいやと思っていたのですが、曜日毎に決められた単純なスケジュールなのでスプレットシートで管理することにしました。
today関数とvlookup関数)上記と同じ要領で、
これは現在地を取得するGeolocation APIと食べログAPIあたりで近くの飲食店をランダムに取得したりできないかな、と思ったのですがよくよく考えたら毎日の食事で新規開拓目指したりしないし行くところなんて限られてるな、ということでやっぱりスプレッドシートに適当に数十パターンの夕食候補を入れておいて、ランダムでとってくるだけにしました。
counta関数を使ってC列の総数をカウントこれで、ひとつのスプレッドシートにみっつの機能をまとめられました。
これはライブドア天気予報のWeather Hacks APIで取得してきます。
かなりざっくばらんなifですが業務ではないので良しとします。
ちなみに「ゴゴ」は一昨年までうちで飼っていた猫の名前です。
{% image "/assets/img/blog/2016/1/15/r4_c2.png", "ゴゴ" %}
お気に召したようです(アイコンかぶってるけど)。
冒頭で紹介した記事以外にも「割と本気で家庭用Slack Botを作ってみた」等、いろいろ参考になる記事が上がっていていま何番煎じくらいなんでしょう。
作り始めるとつい余計な機能を持たせたくなって、無駄にapi一覧なんかを漁ってみたりして、そしてふと気がつくんですね。
彼女とのコミュニケーションコストは削減しなくていいし、効率化も特に必要ない。
僕からは以上です。
ではでは。