LINEMessagingApi를 사용하여 간단한 BOT 만들기

6144 단어 PHPlinebot

SDK 설치



htps : // 기주 b. 코 m / ぃね / ぃねーぼ tsdk phpcomposer require linecorp/line-bot-sdk

Webhook을 LINEDevelopers 관리 화면에서 등록





페이지 중간에 있는 「Webhook settings」에 webhook의 URL을 설정(https가 아니면 안됩니다)하고, 「Use webhook」의 토글을 ON으로 합니다.


메시지를 받을 때 보낸 메시지를 반환하는 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에 대해 뭔가 발언하면 이런 느낌이 듭니다.


조금 개조하다



방금전의 코드를 조금 개조해, 확인 다이얼로그적인 것을 내고 싶습니다.
방금전은, replyText 메소드를 호출해 단순한 텍스트 메세지였습니다만, replyMessage 메소드에는 MessageBuilder 의 인스턴스를 건네줄 수 있으므로 조금 리치인 메세지를 보낼 수 있습니다.
htps : // 기주 b. 이 m/ぃね/ぃねーぼ tsdk php/bぉb/4에16fb07379아9나 b76b9136ㄴf3057fbf40에 f8360/src/ぃねぼt. 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);
}



끝에



ぇぺぺrs. 네. 비 · 자 / 도 cs / 메사 긴 g 아피 /
MessagingAPI로 할 수 있는 일은 아직도 많이 있으므로, 상대의 발언에 의해 액션을 바꾸는 등하면 더 BOT같이 되는군요.
상대로부터의 메세지를 정규 표현으로 판정등 하지 않으면 안 되는 것 같습니다만. . .

좋은 웹페이지 즐겨찾기