
LINE公式アカウント×LINE Messaging API で遊んでみた
こんにちは、エンジニアの片岡です。
前回の記事ではLINE Green Badgeについて紹介しました。
その中でLINE公式アカウント×LINE Messaging APIでを使ってみましたので紹介しようと思います。
1. 作ったもの紹介
作ったものはこちらです!

これは、「できた」というワードに対応して褒めてくれる、自己肯定感をあげられる公式アカウントです。
このままでは特に役には立たないですが、
- ・メッセージを受け取ったことを検知する
- ・受け取ったメッセージ内容を解析する
- ・返信するメッセージを決定する
- ・メッセージを返信する
ということができています。
これはいろいろと活用できそうですね。
2. コードの紹介
それではコードの紹介に入っていきます。
LINE公式アカウントにメッセージが送られると、LINEプラットフォームからWebhookイベントオブジェクトを含むHTTP POSTリクエストが送られるという機能があります。
今回はこの機能を利用して作成しました。
はじめに、受け取ったデータを解析し、LINEのユーザーIDを取得したり、メッセージの内容がテキストかどうかなどを確認している部分です。
※これより前に署名の検証等を行っておいた方がよいですが、今回はプライベートな制作物のため省略しています

次に受け取ったテキストを解析し、返信するメッセージを決めている部分です。
今回は「できた」というワードに反応し、
「おめでとう!」「偉い!」「よくやった!」「さてはあなた様は天才でございますね?」
のいずれかの返信を返します。
「できた」というワードが入っていない場合は「理解できませんでした」と返します。

最後に、返信するメッセージを$post_dataに格納してbot/message/reply APIを叩けば完了です。

中身は非常にシンプルなものでしたが、これを拡張することでいろいろなサービスが実現できます。
次はそちらを紹介します。
3. 拡張した機能の紹介
メッセージを解析して返信メッセージを決めていた箇所に下記のコードを追加しました。


「○○を買う」というテキストに反応し、「○○」の部分をDBに追加、「○○を登録しました」というメッセージを返す機能です。
これは同じような方法で、
「○○を買った」というテキストに反応し、「○○」の行をDBから削除、「○○を削除しました」というメッセージを返す機能や、
「買い物リスト」というテキストに反応し、DBに保持してあるものを一覧にしてメッセージを返す機能
を作って合わせることで、買い物アプリとして機能します。
LINE側のユーザーIDを取得できるので、それを主キーの1つとして利用できるのがいい点ですね。
このように、DBを絡めることで一気にできることの幅が増えそうです。
4. 最後に
いかがだったでしょうか?
今回はLINE公式アカウントとLINE Messaging API を利用して小さなサービスを作ってみました。
きっとこんな感じにすればこんな便利機能がLINEでできる!と、いろいろな機能が思い浮かぶのではないでしょうか。
私も、LINEのメッセージのやり取りでアンケートを実装すればより回答率が上がるのでは…?など、いろいろ思い浮かぶこともあります。
ぜひ皆さんも触ってみてください。
それではこの辺で失礼します。