LINE Bot Awardsエントリー受付中!(2017年2月22日まで)
グランプリ賞金1000万円のLINE Bot Awards、エントリー絶賛受付中です。他にも賞金50万円の9部門、そして学生賞は賞金100万円となっています。革新的なBotを開発して入賞を狙いましょう!
はじめに
LINE Bot SDKにはさまざまな機能があり、簡単に使えるものが多いので今後のBot作りのため、1つずつ実装しながら学んでいきましょう。前回作成したプロジェクトに機能を追加する形でどんどん作っていきましょう。
Botから送れるデータはテキスト、画像、位置情報、スタンプ、動画、音声ファイル、テンプレートで、さらにこれらを組み合わせて送ることもできます。
テンプレートメッセージを使うとYES/NOの確認ダイアログや、選択を促すダイアログ、情報を写真付きで横並びに表示できるカルーセルも表示できるようになります。
対象読者
- Webアプリケーション開発経験者
- スマートフォンなどのアプリ開発経験者
必要な環境
PHPが利用できる環境でしたらどのような環境でも開発が可能ですが、解説はMacで行い、Windows環境で手順に違いがある場合は都度解説します。
筆者の環境はMac OS X El Capitan(10.11.6)、PHPのバージョンは5.6.25です。
準備
前回作ったBotを利用し、機能を追加していく形となります。まだ終わっていない方は前回を参考にして名前とスタンプを送り返すBotを作っておいてください。
テキストメッセージの送信
テキストメッセージの送信には、Bot->replyText関数が手軽ですが、他のメッセージと合わせて送ることも考慮しTextMessageBuilderを使って送信しましょう。
編注:ソースコード部分の表現について
以下、ソースコードのオレンジ色の部分は「新規に追加するコード」、取り消し線の部分は「削除するコード」を表します。
削除するコード
新規に追加するコード
index.phpの最後?>より前に以下のコードを追記してください。
function replyTextMessage($bot, $replyToken, $text) { $response = $bot->replyMessage($replyToken, new \LINE\LINEBot\MessageBuilder\TextMessageBuilder($text)); if (!$response->isSucceeded()) { error_log('Failed!'. $response->getHTTPStatus . ' ' . $response->getRawBody()); } } ?>
動作確認のため、以下のようにコードを変更します。
$profile = $bot->getProfile($event->getUserId())->getJSONDecodedBody();
$message = $profile["displayName"] . "さん、おはようございます!今日も頑張りましょう!";
$bot->replyMessage($event->getReplyToken(),
(new \LINE\LINEBot\MessageBuilder\MultiMessageBuilder())
->add(new \LINE\LINEBot\MessageBuilder\TextMessageBuilder($message))
->add(new \LINE\LINEBot\MessageBuilder\StickerMessageBuilder(1, 114))
);
replyTextMessage($bot, $event->getReplyToken(), "TextMessage");
function replyTextMessage($bot, $replyToken, $text) {
これで一度デプロイして、適当にBotに呼びかけてみましょう。Botからテキストが送られます。正常に動作しない時は前回を参考に、ターミナルでエラーログを見てみてください。