Perl Hackers Hub

第44回 LINE Messaging APIで作るchatbot―LINE::Bot::APIとngrokでお手軽に!(3)

この記事を読むのに必要な時間:およそ 4 分

Confirmタイプで選択式の確認ダイアログを提供する

図4のConfirmタイプは,一般的に普及しているOK/Cancelを聞くConfirmダイアログの見た目のUIを提供します。リスト8で示すとおり,ほかのTemplate messageのタイプと同じ形でオブジェクトが構築できます。

図3 Confirmタイプ

図4 Confirmタイプ

リスト8 Confirmタイプのメッセージ構築

my $confirm = LINE::Bot::API::Builder::TemplateMessage
->new_confirm(
  alt_text => 'this is a confirm template',
  text => 'confirm',
)->add_postback_action(    ―(1)
  label => 'postback',
  data => 'postback data',
)->add_message_action(
  label => 'message',
  text => 'message',
);
Postbackを使ってチャットのログを汚さずにbotにメッセージを送る

リスト8では,ほかの2個のTemplate messageとは違い(1)add_postback_actionメソッドを使いました。これはadd_message_actionと似た機能を提供するのですが,add_message_actionとは違いチャットメッセージに発言のログを残さずにWebhook URLにイベントを通知できるボタンを表示します。このボタンをユーザーが押したときに,裏側でPostback eventがWebhook URLに送信します。このときdataをイベントオブジェクトに含めており,Postback eventの内容は次に示したコードで利用できます。

if ($event->is_postback_event) {
  say $event->postback_data;
}

そのほかのお勧め機能

本節では,前節までで紹介しきれなかったお勧めのAPIを紹介します。

LINE Beaconによる現実世界との連携

Messaging APIには,LINE Beaconと呼ばれる専用のビーコンデバイスを用いることで,ビーコンの電波を受信したタイミングでBeacon eventをWebhook URLへ送信するしくみがあります。これを利用することで,ユーザーの現実世界での行動をイベントトリガとしたLINE BOTを開発できます。

LINE Simple Beacon Specを実装することにより,Raspberry Pi 3などで手軽にビーコンが作成できます。将来的にはハードウェアで計測した数値などをDevice MessageとしてWebhook URLに送信できる予定注7ですので,リアル世界と密接に連携したbotを簡単に作成できます。

注7)
2017年3月現在は未対応です。

Social REST APIを使ったWebサイト連携

Social REST APIを利用することで,みなさんのWebサイトに図5に示したLINEログイン機能を追加できます。ログイン後にはPush Messageで利用可能なuserIdも取得できるので,通常はbotとの会話でサービスを提供しつつ,チャットのUIに適さない複雑な設定画面はWebサイトで提供するハイブリッドなbotが作成できます。

図5 LINEログイン

図5 LINEログイン

LINE Notifyで簡単な通知の送信

LINE Notifyとは,GitHubやMackerelなどのWebサービス上で発生したイベントをLINEに送信するサービスです。このサービスにログインしてパーソナルアクセストークンを取得すると,LINE上の自分のアカウントやグループ宛に好きな通知を送信できます。気軽にcurlなどのコマンドから送信することを考慮して作られており,たとえば次に示したコマンドで簡単にLINE宛へ通知できます。

Furl->new->post(
    'https://notify-api.line.me/api/notify',
[ 'Authorization' => "Bearer $TOKEN" ],
[ 'message' => 'こんにちは!' ]
);

すべてのLINE連携をMessaging APIで作ろうとすると開発コストが増大するので,手を抜ける場合にはLINE Notifyを利用して気軽にLINEに通知をするとよいでしょう。

まとめ

本稿では,LINE Messaging APIの公式SDKを利用したLINE BOTを開発する方法について紹介しました。一度環境を整えてしまえば,LINEで動作するbotが簡単に開発できることが伝わりましたら幸いです。

さて,次回の執筆者はふしはらかんさんで,テーマは「Perlで書くコマンドラインツール」です。お楽しみに。

WEB+DB PRESS

本誌最新号をチェック!
WEB+DB PRESS Vol.129

2022年6月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-12890-6

  • 特集1
    Reactの深層
    最新バージョンから読み解く! 変わる常識と変わらない思想
  • 特集2
    できるところから無理なく導入!
    小さく始めるデザインシステム
  • 特集3
    最新レコメンドエンジン総実装
    協調フィルタリングから深層学習まで

著者プロフィール

大沢和宏(おおさわかずひろ)

開発3センター サービス開発3室。翻訳Botなど,初期のBotサービス関連の開発を担当,その後LINE Taiwanのサービスを経て,現在はLINE LIVEのサーバ開発を行っている。

URL:https://github.com/yappo/