6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

LINEBOTで自分好みの秘書BOTを作ってみる

プロローグ

作ってみたいと思ったきっかけは大きく2つ!

一つは投稿時点での作業場でBOTが効果的に活用されています.
Gitlabをhookさせて必要に応じて内容を送って人間に教える,何かサーバでエラーが発生したらエラー内容を教えたりと,すべきことや,することを漏れなく人間に教えるインフラが確立されてました.
日常的なすることを教えてくれる秘書は欲しいですが,どっかの社長でも芸能人でも無いし,そもそも雇う経済力もないので,秘書BOTで作ろうと思いました.

しかし,「それならググればいっぱいあるやんけ!」ってなります.
はい,確かにいっぱいありますが,そんな時に見つけたのがこれ.
バグをドラゴンと呼ぶ運用を始めて1ヶ月くらいたった
ここで思ったのは「教え方で楽しくできる」ということです.
つまり,普通の秘書じゃなくて自分が好きなキャラを秘書として雇っちゃおう!という着想に至りました.
ラブライバーの私にとって,曜ちゃんやヨハネ様を秘書として雇えるなんて素晴らしすぎるので,やるしか無いですね,はい(キャラ説明は割愛).

要件定義

幸か不幸か私の妄想力は留まることを知らないので,現実的要件,中間的要件,理想的要件の3つに便宜的に分けます.
各々の基準はそれぞれの項目で説明することにします.

現実的要件

「自分好みの秘書BOT」を実現するにあたって必要不可欠,絶対実装したい仕様がここになります.

  • Googleカレンダーを使ってスケジュールを教えてくれる
    • 当日にイベントがあったら,朝に通知
    • 「スケジュール教えて!」って言ったら,今日から1週間のイベントを教える
  • BOTの口調が曜ちゃん

中間的要件

欲しい仕様だけど,今後の開発を考えたらサーバ側に環境構築が必要だったりでちょっと時間がかかりそうな仕様,現実的要件ほど必須性が無い仕様がここ.

  • 「ヨハネ,召喚」って言ったら,秘書がヨハネ様に切り替わる
    • 当然,口調もヨハネ様になる
    • 「曜ちゃん,帰ってきて!」って言ったら秘書が曜ちゃんになる
  • Gmailで重要なメールが来たら教えてくれる

理想的要件

最終的に実装したい仕様だけど,時間とかで到底無理だったり,そんなに欲しくないけど秘書って言ったらこんなことするよねorしそう・・・なやつ.

  • 「丸々な秘書にして」って言ったら,秘書がそんな感じになる
    • 「関西人な秘書にして」→「今日は○○があるさかい,気をつけてな」みたいな
    • ゆくゆくはベースを作って各々で口調を設定できる様にしたい
  • BOTを通じてスケジュールの登録ができる
  • 「公的書類 書き方」「電話応対 取り次ぎ」って言ったら,そのテンプレを教えてくれる

開発環境

このシリーズの開発にあたって使うことになるだろうなやつです.
現実的要件を満たす範疇でリストアップします(中間的要件以降を開発する気になったらその時にリストアップします).

  • BOTサーバはSinatra(Ruby)+passenger+Apache(これらは既に作ってます)
  • タイトルの通り,LINEを使います(LINE@アカウントが要ります,これも既に作ってます)
  • Googleカレンダー
  • GAS

とりあえずこれくらい・・・?

その他

これから開発していきますが,自分の記事管理と「無かったら自分で作る精神」が自分の中であるので,その意味も込めてタグに「ないもの作るシリーズ」をつけてます.

これから投稿するこのシリーズの記事は技術的に困ったところや,これ使ったらよりスマートに書けるor設計できるやんけ!みたいなことを書いていきます.

既に作ったBOTサーバ,LINEBOTのアカウント作成は割愛します(書く気力&余力があれば別記事で投稿します)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?