デジタル初心者がLINEbot作成に挑戦
こんにちは。LINEBotなどこれまで一度も触れたことのない超初心者です。
ある日ふと、業務の効率改善や私生活の何かしらの効率化にITが活用できないかと考えました。
でも何からやったら良いのか。。プログラミング言語を一つ覚える?それとも資格取得の勉強をする?
色々考えましたが、今回は身近なところで使用するLINEを使った何かしらができないかと思い、LINEBotのことを知り、何か使えるものを作ってみたいと色々試行錯誤し自分で実際に動くものを作ってみることにしました。
使用ツール
何を実装しようか
まずは、世の中に存在するAPIを色々調べてみたり、自分の普段の行動を振り返り、こんなのがあったらいいなみたいなものは何かないか?色々と模索。
そこで駅の情報について様々扱っているAPIを発見。そして、知らないところに行った際に、
- 「〇〇駅」行きといったバスがあるけれどどの路線に接続する駅なのか?
- 前後の駅は何なのか?
など分からないことがあったことから、
「駅名を入れたら、駅の簡単な情報を返すLINEbot」
を作成することに決定!
実装開始
使用API
・駅情報取得API(http://express.heartrails.com/api.html)
Makeシナリオ
条件分岐等々さまざまなことができることは分かりましたが、動作時にエラーを起こした際に解決に莫大に時間がかかり、挫折しそうなため比較的シンプルに以下の4つのモジュールにて実装することとしました。
- LINE(Watch Events)・・・ラインのメッセージを受け取るためのモジュール
- HTTP(Make a request)・・・APIの呼び出し
- Json(Parse Json)・・・API情報から必要な項目を取り出すために必要
- Line(Send a reply Message)・・・Line上で返すメッセージ等の設定
色々と詰まりながらも何とか・・・
調べたり手を動かしたりを数時間ほど実施
- HTTPモジュール
- JSONモジュール
- LINE(Send a reply Message)
HTTPモジュールで悩んだ一例
- URLってどの範囲まで入れる?
- Query Stringの各項目って何を入れるの?
等々、他のモジュールでもこのレベルのことで詰まり調べたり何度もBotを動かしたりしながら何とか完成
JSONモジュールの設定
サンプルデータの設定、Json stringには何を入れるの?この辺も難儀しながらも何とか完了。
LINE(Send a reply Message)の設定
ここでもどうやったら必要な情報だけをLINEで返してくれるのか?どの変数が何の情報を持っているのかで色々調べてどうにか設定完了。
初心者の私にとっては、1つ1つにどうしても時間がかかってしまいます。
LINE上での動作結果
駅名を入力し、下記の項目を返してくれるようになりました。
・駅名
・所在県
・前駅
・次駅
あとがき
早速この記事を書く前日に、とある音楽フェスに行った際に帰りのシャトルバスの行き先に記載のある駅の路線(情報)を調べるのに使ってみました!
早速使う機会ができて嬉しい限りです。
今回は、ここまでの作成となりますが、今後は時刻表を返したり、現在地から近い駅のリストを返したりとより実用性があるbotに成長させていきたいと思います。