LINEのチャットボットをつくってみた。いろいろと便利そうだが、無駄なことに使ってみる。

本屋で立ち読みしていたら、LINEボットの本が面白そうなので、やってみることに。

ところが、家に帰って読み始めたら、冒頭1ページ目から「SSLに対応したWebサーバ」が必要とのこと。「詰んだ……」

「あれでしょ、SSLサーバーの証明書って、お高いんでしょ?」

仕事で使うのならいいが、ボットで遊ぶために、わざわざ証明書まで購入する気にはならんな。

と思っていたのだが、

よくよく調べてみると、いまどきは無料の証明書を発行してくれるところもあるらしい。

というわけで、さくらVPSをLet’s Encryptの無料証明書でSSLサーバー化にチャレンジ。

nginxのコンフィグで悩んだりはあったが、なんとかSSL化できた。

が、しかし、LINEボットが返事を返さない。既読スルーどころか、既読にさえもならない。
「Hello!」
「ハロー!」
「ハロハロハロ」
「やーい、おたんこなす(スタンプ)」
一切既読がつかない。

よく見ると、違う人のアカウントだった……(汗)

チャットボットを登録するときは、アカウント名検索ではなく、IDで検索した方が確実ですね。LINE文化の中では常識なのかもしれないけど、私は知りませんでした。

あたらめて、自分の作ったチャットボットに語りかけるが、既読になっても返信がない。nginxのログを読んだら、ディレクトリのパーミッション設定がおかしいよう。

という紆余曲折を経て、なんとか反応してくれるチャットボットの出来上がり。

最初はただおうむ返しをしてくれるボット。
「角野卓造」と言うと、「角野卓造じゃねーよ!」と返してくれます。

IMG 6012

次は、正規表現でキーワードマッチングさせて、「犯人」と「アリバイ」という語に過剰反応する犯人ボット。

IMG 6013

最後に、Mathematicaで有名なWolframのAPIを利用して、クイズに返答してくれるクイズマスターbot。
前処理に日英の翻訳APIをかませて、日本語に返答するものにしたかったのですが、Google翻訳APIは有料だし、MSの翻訳APIは無料だがクレジットカード番号入力が必要なので却下。個人で使うには、英語でも十分かなと。

IMG 6014

最後に、今回つまずいた点を整理。
1)最近は無料のSSL証明書を発行してくれるところもある。
2)Let’s Encryptでは、LINEボットは動かないという情報もあるが、現在(2017年9月)では問題なさそう。
3)さくらVPSとLet’sEncryptとnginxの組み合わせで問題なし。
4)友達登録するチャットボットはID検索して確実に登録。(単純すぎるミスなので、どこにも情報がなく無駄に悩んでしまった)
5)ディレクトリのパーミッションもチェック。

その他にも、いろいろ面白そうな利用方法が書いてある、下記の本を参考にしてみました。
それでは!

おもしろまじめなチャットボットをつくろう
松浦 健一郎 司 ゆき
秀和システム
売り上げランキング: 152,504