LINE의 빠른 응답 기능을 사용해 보았습니다.
14451 단어 LINEmessagingAPI빠른 응답채팅봇
빠른 응답의 이점
개인적으로 이 두 가지 장점이 상당히 크다고 생각합니다.
시도해 보았습니다.
실제로 모의를 만들어 보았으므로 동작을 확인하고 싶습니다.
표시 정보
빠른 응답의 표시는 다음과 같습니다. 모의에서는 리치 메뉴의 좌하의 버튼을 눌러 퀵 리플라이를 출현시키도록 하고 있습니다. 선택 영역은 옆으로 스크롤할 수 있습니다.
메시지 전송
버튼을 눌러 메시지를 보낼 수 있습니다. 챗봇 측에서 어떤 메시지가 전송되었는지 처리할 수 있습니다. 아래에서는 "Message Send"라는 버튼을 눌러 메시지 송수신을 시도하고 있지만 포스트백 액션을 받을 수도 있습니다.
날짜 및 시간 전송
날짜와 시간을 보낼 수 있습니다. 모의에서는 「Datetime Send」라고 하는 버튼을 눌러 날짜와 시간 모두 지정시키고 있습니다만, 날짜만, 시간만을 지정하게 하는 것도 가능합니다. 예약 관리용의 챗봇등에서는 편리할 것 같은 기능이군요.
카메라 시작
퀵 리플라이로 밖에 실현할 수 없는 기능 그 1입니다. "Camera Start"버튼을 누르면 카메라가 시작되고 촬영한 이미지를 그대로 전송할 수 있습니다. 또 카메라 롤로부터도 사진 선택・화상 송신시키는 것도 가능합니다.
※아마 화상의 업로드 상한에 걸려 있어 화상 업할 수 없었습니다・・・시간을 두고 갱신 예정입니다.
위치 정보 전송
퀵 리플라이로 밖에 실현할 수 없는 기능 그 2입니다. "Location Send"라는 버튼을 누르면 현재 위치를 전송할 수 있습니다.
소스 코드
빠른 응답 메시지 본문을 만드는 부분은 거의 JSON 베타입니다. 요소를 가변으로 할 수 있도록 브러쉬 업하고 싶네요. 또 모의 전체로부터 요점 부분만 빼내서 쓰고 있으므로, 이대로 코피페로 움직일지는 모릅니다・・・(아마 괜찮아···?)
Line.php
<?php
class LineFunctions {
private function replyMessage($message, $channel_access_token) {
$header = array(
"Content-Type: application/json",
'Authorization: Bearer ' . $channel_access_token,
);
$context = stream_context_create(array(
"http" => array(
"method" => "POST",
"header" => implode("\r\n", $header),
"content" => json_encode($message),
"ignore_errors" => true,
),
));
$response = file_get_contents('https://api.line.me/v2/bot/message/reply', false, $context);
if (strpos($http_response_header[0], '200') === false) {
http_response_code(500);
}
return $response;
}
function replyMessageText($reply_token, $send_messages, $channel_access_token){
$reply_message = array(
'replyToken' => $reply_token,
'messages' => $send_messages
);
return $this->replyMessage($reply_message, $channel_access_token);
}
function createQuickReplyBodyProto(){
$send_messages = array(
'type' => 'text',
'text' => '選択してください。',
'quickReply' => array(
'items' => array(
array(
'type' => 'action',
'action' => array(
'type' => 'postback',
'label' => 'Data Send',
'data' => 'PostBackData',
'displayText' => 'ポストバックデータを送ります。',
)
),
array(
'type' => 'action',
'action' => array(
'type' => 'message',
'label' => 'Message Send',
'text' => 'テキストを送信します。',
)
),
array(
'type' => 'action',
'action' => array(
'type' => 'datetimepicker',
'label' => 'Datetime Send',
'data' => 'DateTimeData',
'mode' => 'datetime',
'initial' => '2018-12-19t00:00',
'max' => '2020-12-31t23:59',
'min' => '2015-01-01t00:00',
)
),
array(
'type' => 'action',
'action' => array(
'type' => 'camera',
'label' => 'Camera Start',
)
),
array(
'type' => 'action',
'action' => array(
'type' => 'cameraRoll',
'label' => 'CameraRoll Start',
)
),
array(
'type' => 'action',
'action' => array(
'type' => 'location',
'label' => 'Location Send',
)
),
)
)
);
return $send_messages;
}
}
index.php
$line = new LineFunctions();
//クイックリプライのメッセージボディ作成
$send_messages = $line->createQuickReplyBodyProto();
//メッセージ送信
$send_response = $line->replyMessageText('[reply_tokenを指定してください]', $send_messages, QUICKREPLY_CHANNEL_ACCESS_TOKEN);
요약
퀵 리플라이는 채팅봇의 경험이 보다 직관적으로 되는 기능으로, 보다 유저 퍼스트가 되어 있는 것 같다. 빨리 잘 다루어 채팅봇 개발에 도입하고 싶네요.
Reference
이 문제에 관하여(LINE의 빠른 응답 기능을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawazu255/items/fd72c4fa9b75a7d02d69텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)