Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

LINE Bot SDKが持つ主要機能の実装方法

日本一わかりやすいLINE Bot開発講座 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/01/10 14:00

 本連載では、今後広がっていくであろうBotの開発手法を、LINE Botを例として解説していきます。開発はPHP、サーバーはHerokuのフリーアカウントを利用するので簡単に、そして無料で運用が可能です。第3回となる今回は、LINE Bot SDKの持つ主要な機能を実際にBotを作りながら学んでいきます。画像やスタンプなどリッチなコンテンツを送ったり、テンプレートを使った確認ダイアログや横並びの画像+ボタンのダイアログなどを簡単に実装できます。

目次

LINE Bot Awardsエントリー受付中!(2017年2月22日まで)

 グランプリ賞金1000万円のLINE Bot Awards、エントリー絶賛受付中です。他にも賞金50万円の9部門、そして学生賞は賞金100万円となっています。革新的なBotを開発して入賞を狙いましょう!

(「LINE Bot Awards」より引用)

(「LINE Bot Awardsのページ」より引用)

はじめに

 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からテキストが送られます。正常に動作しない時は前回を参考に、ターミナルでエラーログを見てみてください。

TextMessageの送信
TextMessageの送信

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 立花 翔(タチバナ ショウ)

    GMOインターネット株式会社特命担当。 Android、iPhoneアプリ・ゲームをメインに企画・コーディング・モデリング・デザイン・楽曲作成など全てこなし、これまで100本以上のアプリをリリース。双方のマーケットで300万超えのダウンロード、計700万ダウンロード以上。 2016年より...

バックナンバー

連載:日本一わかりやすいLINE Bot開発講座
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5