SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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の送信

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
画像の送信

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
日本一わかりやすいLINE Bot開発講座連載記事一覧

もっと読む

この記事の著者

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

 LINE株式会社テクニカルエバンジェリスト  個人アプリケーションデベロッパーとして世界中で1000万近くのユーザーと接点を持った経験を元に、デベロッパーのLINEのAPIを利用したビジネスの成功をお手伝いさせて頂いております。 各種APIを始めとするプラットフォームとしてのLINEを啓蒙し、目指...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9905 2017/01/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング