안녕하세요 이번 포스팅에서는 카카오톡 자동응답 봇을 만드는 과정에 대하여 설명해 드리려고 합니다.
카카오톡은 옐로우아이디 사용자에 한하여 자동응답 API를 제공합니다.
옐로우아이디와 개인서버(혹은 AWS)가 있다고 가정하고 자동응답을 수행하는 서버를 구축하고, 카카오톡 봇을 만들어 보도록 하겠습니다.
옐로우아이디는 (https://yellowid.kakao.com)에서 발급 받을 수 있고 승인이 이루어지면 관리페이지에 접근할 수 있습니다.
자동응답 탭을 클릭하여 API형 자동응답 부분의 설정하기를 누르면 다음과 같은 앱 설정 페이지를 볼 수 있습니다.
앱 URL의 경우 저는 웹서버의 IP를 입력해 주었고 웹서버에서는 httpd서비스가 Centos7환경에서 구동중입니다.
일단 이 설정은 가장 마지막에 서버 설정을 모두 마친후 등록하도록 하고
https://github.com/plusfriend/auto_reply 의 내용을 참고하여 응답을 해줄 수 있는 환경을 구축합니다.
저는 php환경에서 받은 요청을 처리하여 응답을 보내주는 방식으로 구축하였습니다.
만들어야되는 부분은 크게 4가지로 나누어집니다.
keyboard : 최초로 채팅방에 들어올 때 기본으로 키보드 영역에 표시될 자동응답 명령어목록을 호출하는 API.
message : 사용자가 선택한 명령어를 서버로 전달하는 API.
friend : 특정 카카오톡 이용자가 플러스친구/옐로아이디를 친구로 추가하거나 차단하는 경우 해당 정보를 서버로 전달하는 API.
user_key : 사용자가 채팅방 나가기를 해서 채팅방을 목록에서 삭제했을 경우 해당 정보를 파트너사 서버로 전달하는 API.
자세한 내용은 https://github.com/plusfriend/auto_reply 에서 확인할 수 있습니다.
다음은 각 API에 대한 간단한 예시입니다.
keyboard.php
<?php
echo <<< EOD
{
"type" : "buttons",
"buttons" : ["메뉴1", "메뉴2", "메뉴3"]
}
EOD;
?>
message.php
<?php
$data = json_decode(file_get_contents('php://input'));
//입력을 받아서$data변수에 모두저장
//$data->user_key : 사용자의 고유키
//$data->type : text/photo 로 나뉘어지며 문자인지 미디어인지 구분
//$data->content : 메시지 내용(text일 경우 메시지가,photo일 경우 미디어의 주소가 들어있다.)
if("$data->content"== "메뉴1"){
echo <<< EOD
{
"message": {
"text": "메뉴1입력시 출력할 내용"
},
"keyboard": { //선택창 표시
"type": "buttons",
"buttons": [
"메뉴1",
"메뉴2",
"메뉴3"
]
}
}
EOD;
//이하 생략
?>
chat_room 과 friend의 경우는 유저를 식별할 수 있는 키 값을 처리하는 경우가 대부분이라서 여기에서는 다루지 않았습니다.
서버에서 어느정도 응답이 잘 이루어지게 구축하였다면 앞에서 언급한 앱 등록 과정을 거쳐서 테스트 하면 될거같습니다!
php를 처음 다뤄보고 급하게 만들다보니 부족한부분이나 틀린부분이 많을 것 같습니다. 포스팅도 처음 해보는거라 부족한부분이 많네요 ㅠㅠ
틀린부분이나 이해가 안되는부분은 댓글 남겨주시면 감사하겠습니다!
'Study' 카테고리의 다른 글
| KISA주관 HDCON 참가신청 시작! (0) | 2016.10.05 |
|---|---|
| 카카오톡 자동응답 API + flask 를 활용해서 카톡봇만들기 (0) | 2016.07.25 |