【BOT開発秘話】おすすメンダコ作ってみた!

皆様おはこんばんにちは!!

初めまして、普段はテクニカルサポートの現場で働いてるOSOBAです。

ちなみにお酒が大好きです!よろしくお願いします!

今回は、社内の有志が集まってSlackbotを作成する「社内用SlackBot開発プロジェクト」に参加したので、感想などを書いていこうと思います。

「社内用SlackBot開発プロジェクト」とは

開発の神かみよっちさんによって集められた経験者、初心者ごちゃまぜの有志メンバーでPythonを使って社内Slackで稼働する便利なbotを作ってみよう!

というちょっと夏休みの自由研究みを感じるプロジェクトです。

botとは何かというと、

Bot(ボット)は、robot(ロボット)の短縮形・略称。転じて、コンピュータやインターネットの分野においては、作業を自動化するプログラムの総称。

※Wikipediaより引用

つまりLINEとかTwitterで自動で返信してくるアレです。

 

今回は二人一組、総勢8名の4組で別々のbotを作りました。

僕の相方は現役でエンジニアの現場で活躍している先輩社員の「t.harada」さんです。

僕はちょっとUnity触って断念したずぶずぶの素人初心者です。Git?何それおいしいの?

実際に作ったbot

弊社Slackには「ただ好きな音楽のURLを張っていく」、「おいしいご飯屋さんのURLを張っていく」、#share_music や#share_umaimeshi というチャンネルが存在します。

そこで、「呼び出したときに#share_○○の今までの投稿からランダムで投稿を引っ張ってきておすすめするbot」

「おすすメンダコ」

を作成しました。 

なんでメンダコなのかというと、どちゃくそ可愛いからです。あのフォルムとつぶらな瞳がたまらんのです。

使い方

単純明快、おすすメンダコがいるチャンネルで「音楽」または「うまめし」と投稿すると起動して、おすすめしてくれます。

例えば「音楽」の場合…

こんな感じです。たまたま僕の好きなロックバンドが出てきたのでついでに流しながら勝手に一人でテンション上がってます。

選曲は完全ランダムなので、新たな知らない曲に出会うこともあります。世界には無限に音楽があってとっても楽しいですね。やっぱ最高だわ、音楽は。

ちなみに余談ですが、筆者のOSOBAは配信で見たDJに憧れてDJのターンテーブル買いました。アゲていきましょう。

 

そして「うまめし」だと…

こんな感じです。基本食べログのURLが投稿されてるので食べログ率高めです。

今はご時世的に外出することは少ないと思いますが、暇な休日に「どっか飯でも行くか。」と思い立った時や、ご飯の約束をしたけど店が決まらない、なんて時に便利ですね。

shareチャンネルの投稿を持ってきている性質上、たまに他県のお店とか出てきますが、引き当てた方はぜひ遠征して欲しいです。

botの説明としてはこんな感じになります。

開発過程

どんな様子で開発を進めていったかざっくりと感想を交えていていこうと思います。

仕様検討/要件定義

どんな人に使ってほしいか、できるできないかは別としてどんな機能を実装したいかを決めて、その後技術力と開発期間を鑑みて実際に実装する機能を決めました。

仕様検討の時点ではなかなか多くの機能が上がりましたが、今回はシンプルなものにしたかったので、「音楽」と「うまめし」の2つの機能に絞り込みました。

環境構築

まずはPCに開発を行うための設定を行いました。

僕はMacを使っていたので、「ターミナル」を操作してPythonやGitをインストールしました。

いままで機能をインストール=アプリを入れるという認識だったので必死にアプリを探してました。

(初心者からするとあの真っ黒い画面を触るのがめちゃくちゃ怖いんですよね..!)

実装

要件定義で決めた機能を実際に実装していきます。

今回はペアでの開発だったため、細かく進捗を報告することを意識しました。

実際の作業については先輩社員の方々に教えてもらったり、ペアプロと言って相方の「t.harada」さんと一緒に通話をつなぎながらコーディングをしました。

苦戦したポイントは、音楽やうまめしのチャンネルの投稿のURL部分だけを取り出すためにAPIの情報から欲しいものだけを取り出す必要があり、そのデータ抽出にとても苦労しました。

でも何回もエラーを出した果てにうまく機能が実装できた時の達成感はほんとに気持ちよかったです!

 

その中でも一番苦戦したのはGitの使い方です。初心者にはマジで概念を理解するのが大変なんですよね…

「サルでもわかるGit講座!」的なものをググってみたりしましたが全然理解できなかったので知能がお猿さん以下なのかもしれません。

ただそんな僕でも何回もミスしたり、つよつよ先輩方に教えてもらいまくってなんとか、お猿さんレベルには理解できるようになりました!!!

デプロイ

二番目の難関、デプロイです。

実装期間は実際にアプリを動かしてテストするのをローカル環境。つまり自分のパソコンで行っていましたが、それでは自分のPCでbotを動かし続けなければなりません。

そこで、作った機能をオンライン上にアップロードして動かし続けるようにする作業になります。

何が僕にとって難関だったかというと、「アプリを動かしてくれるherokuの使い方」の理解でした。

ここでも「ターミナル」を使ってherokuCLIをインストールしてごにょごにょ…と初心者的には「????」な作業でした。

途中まで頭を抱えっぱなしでどん詰まり状態でしたが、結局は作ったコードが上がっているGithubとherokuを単純に連携するだけだったので、

そのことを教えてもらった後は嘘みたいにすんなりデプロイが終わってしまいました。

 

そして…

祝bot完成!!!

はい!!!!完成!!!!おめでとう!!!!

自分の作ったメンダコちゃんが社内Slackで動いているのを見て感無量でした…!

何かを作ってお披露目できるって素晴らしいことだなと思います。

で も ま だ 終 わ っ て は い な い の で す

不具合/アップデート対応

そうです、作ったからにはメンテナンス、不具合対応を行う必要があります。

他のbotでは結構改善要望が出ていましたが、おすすメンダコでは、

「うまめしで閉店した店舗が出てくるので出ないようにしてほしい」

といった内容でした。この不具合は相方の「t.harada」さんがサクッと対応してくれちゃいました!感謝!!!

僕が担当したのはアップデート部分で、

「メンション呼び出しを単語検知にする」

といったものです。単純な奴です。

 

お披露目当初は「@おすすメンダコ 音楽」といちいちbotに宛先を指定して使わなければいけませんでした。

しかし自分で使っていて、「いちいちメンション使うのだるいな…」と思い始めました。

気軽に使いたいものなので、そのひと手間をなくすために「音楽」とコメントするだけでおすすメンダコが反応してくれるように改良しました。

実際に使うまで改善点が見つからなかったので、今後も改善点があればさらに使いやすくしていきたいと思います。

全体的な感想

最後に全体を通しての感想を簡単に書いていきます。

今までゲーム開発などを少し触ってはいましたが、挫折を繰り返して結局何も作り上げることはできていなかったので、

何かを1から作り上げて完成させる、という実体験を得られたのがとても嬉しかったです。

また今回のプロジェクトは仕様検討や設計などの実際の開発工程を再現して行われたものなので、社内でこれを体験できたのはとても貴重な経験になったと思いました。

そして何より、モノを考えて実際に作り上げて実現することはとてもやりがいがあり楽しい。と感じました。

この経験を糧に、今後も自分の目指す道に向かって頑張っていこうと思います。

 

以上、お読みいただきありがとうございました!