1
4

More than 3 years have passed since last update.

LINEMessagingApiを使って簡単なBOTを作成する

Last updated at Posted at 2019-12-10

SDKのインストール

https://github.com/line/line-bot-sdk-php
composer require linecorp/line-bot-sdk

WebhookをLINEDevelopersの管理画面から登録する

スクリーンショット 2019-12-09 18.53.46.png

ページ真ん中にある「Webhook settings」にwebhookのURLを設定(httpsじゃないとダメです)して、「Use webhook」のトグルをONにします。
スクリーンショット 2019-12-09 18.55.44.png

メッセージを受け取ったときに、送信されたメッセージを返すBOTを作る

$signature = $request->headers->get(HTTPHeader::LINE_SIGNATURE);

$httpClient = new CurlHTTPClient('管理画面から取得できる Channel access token');
$bot = new LINEBot($httpClient, ['channelSecret' => '管理画面から取得できる Channel secret']);
$events = $bot->parseEventRequest($request->getContent(), $signature);
foreach($events as $event) {
    if($event instanceof MessageEvent) {
        $bot->replyText($event->getReplyToken(), '「' . $event->getText() . '」と発言しましたね。');
    }
}

このBOTに対して何か発言するとこんな感じになります。
ZKToOKlTueo67AVSXTYL1575886195-1575886200.gif

ちょっと改造する

先ほどのコードを少し改造して、確認ダイアログ的なものを出してみたいと思います。
先ほどは、replyTextメソッドを呼んでただのテキストメッセージでしたが、replyMessageメソッドにはMessageBuilderのインスタンスを渡せるのでちょっとリッチなメッセージを送れたりします。
https://github.com/line/line-bot-sdk-php/blob/4e16fb07379a9cab76b9136ff3057fbf40ef8360/src/LINEBot.php#L123-L129

if ($event instanceof MessageEvent) {
    $confirmBuilder = new ConfirmTemplateBuilder('「' . $event->getText() . '」と発言しましたね。', [
        new MessageTemplateActionBuilder('はい', 'はい'),
        new MessageTemplateActionBuilder('いいえ', 'いいえ'),
    ]);
    $builder = new TemplateMessageBuilder('test', $confirmBuilder);
    $bot->replyMessage($event->getReplyToken(), $builder);
}

PDf9C8oRuOmz7NadEVbS1575888539-1575888551.gif

終わりに

https://developers.line.biz/ja/docs/messaging-api/
MessagingAPIでできることはまだまだたくさんあるので、相手の発言によってアクションを変える等すればもっとBOTっぽくなりますね。
相手からのメッセージを正規表現で判定等しないといけなさそうではありますが。。。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4