Wiz テックブログ

Wizは、最新のIoTやICTサービスをお客様に届ける「ITの総合商社」です。

LINEBotのメッセージ形式あれこれ

https://kazzstorage.com/wp-content/uploads/2019/10/trial-messaging-api-00-300x300.png

こんにちは、バックエンドエンジニアの米山です。

前回、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ではエンジニアを募集しております。

興味のある方、ぜひご覧下さい。

careers.012grp.co.jp