Edited at

Line Botの話

More than 1 year has passed since last update.


概要

最近友達とLINE Botを作ったのでその話をします

実際に作る過程を通してわかったLINE Botでできることできないこと


作ったもの

リマインドBot「リマさん」

友達とのトークに入れとけば「明日の17時に新宿集合ね!」とかやるとリマインドを設定してくれる。

友達追加はココから🙏


PV動画も作ったよ

Bot詳細はここ

Youtubeにあがってます


開発する前に思ってたこと

SSL対応しないと動かないからマジデバック辛そう🙄


  • 全然そんなことなかった🙆

ユーザーの入力方法が自然言語とボタンくらいしかない🤔


  • まあなんとかなる


SSL対応しないと動かないからマジデバック辛そう🙄

ローカル環境をhttpsとして外部に簡単に公開できるappがあったのでそれを使った

今回はサーバーサイドをRailsで作ったのでこんな感じのことをするだけでhttpsのlocal開発環境が整う


bash

$ brew install ngrok

$ ngrok http 3000


ユーザーの入力方法が自然言語とボタンくらいしかない🤔

ImageMapを使えば変な入力インターフェイスとかは作れる


  • 画像の赤の位置をタップしたらhogehogeみたいなことができるのでボタンの拡張版みたいなことはできる。

  • シャレオツな画像ボタンは作れるけど、チェックボックスみたいなことはできなかった


開発してみて困ったこと🤔


  • 個人の特定ができない

  • グループの人数が分からない

  • アクセス元のIPが分からない

  • ページを持たないの辛い


個人の特定ができない🤔


  • Lineでは発言者個人を特定することができない

  • 開発側からはAグループに所属しているhogeさんとBグループに所属しているhogeさんが同一人物だということが分からない

  • 今回User毎に自分が関連しているすべてのグループのリマインドを一度に見れるようにしたかったが、個人が特定できなかったのでできなかった。


グループの人数が分からない🤔


  • LINEにはUser・Talk・Groupの3つのソースタイプが存在するのだが、Talk・Groupに何人所属しているのか分からない

  • 期日までにグループ全員の投票がなければリマインドみたいなことをしようと思ったが、所属人数がわからないので結局出来なかった。


アクセス元のIPが分からない🤔


  • アクセス元のIPから大体の生活区域を予測して、リマインドするときに天気予報をするというのを実装したかったのだができなかった

  • アクセスは全てwebhookで来るので位置情報は明示的に入力してもらわなければならなかった


ページ持たないのマジ辛い🤔


  • 対話形式で何かをしようと思ったときにサーバー側でシーン

    管理みたいなことをしなければならないのが辛い


  • シーン1

    「お店探したい!」

    「場所はどんなお店をお探しですか?」


  • シーン2

    「おしゃれな店がいいなぁ」

    「このようなお店はいかがでしょう」


  • シーン3

    「もっと近い店がいい」

    「こちらのお見せはいかがでしょうか」


  • シーン4

    「やっぱりおしゃれじゃなくていいから近くて安いとこが良い」

    「こちらのお見せはいかがでしょうか」


普段だったらこういうシーン毎にフォームとかページとか分けられるけど、常に同じurlに文字列が送られてくるだけなので、いい感じにこれらのシーンを管理しなければならない。


感想🎉


  • ドキュメントがとても充実していて、とっかかりやすい

  • ページ持たないのはマジ辛い

  • webも混ぜたらいい感じになった

  • LineでできることはLine

  • 複雑なことやりたければWeb

  • Botだからwebを使ってはいけないということは無いと思う

  • LINE的には嫌だろうけど()


最後に🙏


  • 僕ができないと思ってるけど実はできることあったらごめんなさい

  • 友達追加お願いします