TECHBLOGスキルブログ

社内のSlackにBotを導入してみた

2018.03.12

こんにちは。
ユニトラストでエンジニアをしている我妻です。

2016年夏頃から弊社内でも導入されたSlackと連携して動いているBotについてせっかくなので後の記録のために書き残しておこうと思います。

Unibot

弊社Slackチーム内には常駐のbotとしてUnibotが生息しています。
せっかくSlackを導入するならと個人的な趣味で導入したのをきっかけに徐々に機能が追加されつつ今に至ります。

 

生息環境(動作環境他)

現在Unibotはbotフレームワークのhubotで構成されており、IBMのBluemix上で活動しています。
hubotの導入事例を探すとよくherokuが紹介されているのですが、情報収集当時はFreePlanに収めるためには1アプリしか動かせない、18h/day程度しか稼働できなかったこと、30分反応がないと強制的にスリープさせられるので必要なときに自由に遊べない等制約が厳しかったためそのあたりの制限が緩いBluemixを選択しました。
※30分でのスリープについて回避用のスクリプトは公開されていますし、現在はFreePlanでも1000h/month稼働できる様になっているようです。(24 * 31 = 744 < 1000)

 

Unibotのできること

・ズンドコチェック

zundoko_001
「ズン」・「ドコ」をランダムで出力し「ズンズンズンズンドコ」となったあとに「キ・ヨ・シ!」と出力して終了します。
Qiitaのこちらの記事を見かけたのをキッカケに手習いとして作成。
ページ上で思ったような表示になってくれなかったのでGist上に残しておきます。

・ダイスエミュレート

dice_002
MdN (M,N = 自然数)の形式でダイスノーテーションを渡すことでダイスの出目と合計値を返してくれます。
一発ネタとしてただ某所で流行っていた3d5がやりたくて実装しました。
3d5_001
dice_001
使われているのを見たことはないですが、機能追加時の反応 は 良かったです。

・画像検索

free_001
検索キーワードを投げるとそれに該当する画像をGoogleから取得して表示してくれます。
(フリーな感じの画像を出そうとしたらちょっと駄目な感じだったのでボカシ処理当ててます。)
機能搭載時に軽くバズって画像がログをどんどん流していってしまったため、流れが早すぎるとのことでbot隔離チャンネル送りになりました。
今でも返ってきた結果に「それじゃないんだよなぁ…」みたいな反応と共に再度検索されたりしているのでGoogle検索の結果からランダムで画像を返すというランダム性射幸性がウケたのかなと思います。やはりガチャは悪い文明
こちらは自作ではなく公開されているものをインポートしています。

・全社予定通知

schedule_001
社内で使われている全社案内用のGoogleカレンダーに登録されている予定を通知してくれています。
GoogleAppsScriptで実現しているので正しくはbotの機能ではないですが、一番働いている機能かもしれません。
オフィス移転のときは上記のような感じでアナウンスしてくれていました。健気ですね。

やりたいこと

本格的な運用ツールを目指そうとするとアレもしたいコレもしたいと収拾がつかない事になって実現しないままに投げてしまいそうなので、
瞬発力重視でぱっと思いついたお遊び機能や、一芸なんかを増やしていきたいですね。
今考えているものとしては朝夕の電車遅延通知、社内GitのPR通知はやりたいところです。
またbotの機能ではないですが、コード管理している社内GitLabにGitLab CIも導入されている事に気づいたのでマージ~デプロイまでの自動化をやってメンテナンスの手間を減らしたいです。

他の方が色々と呼び鈴や会議室予約機能等をSlackと繋げようと画策しているらしいので、そちらも楽しみにしつつ今回はここで筆を置きたいと思います。


              

OTHER CONTENTSその他のコンテンツ

UNITRUST会社を知る

  • 私たちについて

  • 企業情報

SERVICE事業内容

  • システム開発

  • 自社サービス

CONTACT
お問い合わせ

あなたの「想い」に挑戦します。

どうぞお気軽にお問い合わせください。

受付時間:平日9:00〜18:00 日・祝日・弊社指定休業日は除く

お問い合わせ