こんにちは、バックエンドエンジニアの米山です。
前回、LINEBotの自作をするための環境構築について書きました。
LINE DevelopersサイトのMessaging APIの頁を見ていたければわかるのですが、「イベント」という概念があり、このイベントごとに自分で処理を作り「メッセージ」を返します。
今回はこの「メッセージ」についていくつかパターンがあるので紹介したいと思います。
開発言語は、前回に引き続きPHP(Laravel)を使います。
テキストメッセージを返す
一番の基本ですね。ユーザーが入力したメッセージをオウム返ししても良いですし、挨拶のようなbotを作っても良いかもしれません。
$bot->replyText($reply_token, 'おはよう');
一番簡単にテキストメッセージを返せるのはreplyText()メソッドを使った返し方です。
$reply_tokenにはLINEユーザーがbotに対して送ってきた時のトークンを取得し、返却時に使います。(以降同様)
実はテキストメッセージはいくつか返し方があり、一番簡単なのは上記の通りなのですが
$builder = new TextMessageBuilder('おはよう'); $bot->replyMessage($reply_token, $builder);
でも返せます。
仕組み的には、replyText()メソッドの中でもTextMessageBuilderが使われており、同じような処理をしているからです。
選択肢ボタンのメッセージ
アンケートなどで「どちらか選んでください」という選択肢のボタンをメッセージとして返すことができます。
$button1 = new MessageTemplateActionBuilder('ラベル1', 'ぼたん1'); $button2 = new MessageTemplateActionBuilder('ラベル2', 'ぼたん2'); $buttons = array($button1, $button2); $builder = new TemplateMessageBuilder('タイトル', new ButtonTemplateBuilder(null, 'タイトル', null, $buttons)); $bot->replyMessage($reply_token, $builder);
ちょっと複雑ですが
- 1つ1つのボタンを作成する
- ButtonTemplateBuilderでまとめる
- TemplateMessageBuilderで返す(中身はボタン) という作り方になります。
クリックリプライボタン
LINE Developersサイトでボタンとは別に解説されているのが「クイックリプライ」です。
最大13個までの横に並ぶボタンを定義できます。
こちらも選択肢と同じような使い方ができるものです。
$button1 = new QuickReplyButtonBuilder(new MessageTemplateActionBuilder('ラベル1', 'ぼたん1')); $button2 = new QuickReplyButtonBuilder(new MessageTemplateActionBuilder('ラベル2', 'ぼたん2')); $buttons = array($button1, $button2); $builder = new TextMessageBuilder('タイトル', $buttons); $bot->replyMessage($reply_token, $builder);
若干使い方が異なりますね。
他の返し方
テキストメッセージ、選択肢ボタン、クイックリプライと紹介してきましたが慣れてくると、他の返し方もできるようになります。
- タップしたらLINE内部ブラウザでWebサイトにアクセス(返信メッセージにURLを埋め込む)
- 日付を選択させるメッセージを返す(Date Picker)
- 画像で返す、音声で返す、動画で返す
- スタンプを返す(ただし使える範囲は限られている)
- 位置情報を返す
などなど。また、これらは入れ子にすることができ
- 選択肢ボタンの1つ目を選ぶとWebサイトに飛ぶ、2つ目を選択した時はメッセージを返す
- クイックリプライの1つ目をタップするとメッセージが出る、2つ目の場合は画像が送信されてくる のような挙動も作ることができます。
おわりに
いかがだったでしょうか。
LINEというアプリとこのSDKを用いた技術は覚えておいて損はないと思います。
twitterなど、他のSNSのDeveloperにもなれる可能性がありますしSNS関連の知見も増えていくことでしょう。
ここまで読んで頂き、ありがとうございます。
Wizではエンジニアを募集しております。
興味のある方、ぜひご覧下さい。