이번에 살펴볼 내용은 카카오톡 자동 응답 서비스를 구현하기 위한 서버 구축을 하려고 합니다. 일단 아직 카카오톡 플러스 친구에 가입하지 않은 경우에는 http://humit.tistory.com/249를 참조해서 가입을 하시기 바랍니다.
이번 내용에서의 준비물은 SFTP 패키지가 설치된 Sublime Text 3, 카카오톡 봇 제작기(https://github.com/humit0/kakao_auto_reply/archive/master.zip에서 받으시면 됩니다.), 카카오톡 플러스 친구 계정이 필요합니다.
물론 Sublime Text 3가 없는 경우에는 아무 텍스트 에디터나 사용해도 상관이 없으며, FTP 프로그램으로 업로드를 하시면 되기 때문에 크게 신경쓰지 않으셔도 됩니다. 다만 앞으로의 강좌를 위해서 FTP 기능을 포함하고 있는 에디터(Sublime Text, Atom 등)를 사용하는 것을 추천합니다.
먼저 카카오톡 봇 제작기를 다운로드 받고, 압축을 풉니다. 다운로드 주소는 위쪽 준비물에 대한 설명에서의 링크에서 받으시면 됩니다.
압축을 풀어서 나온 폴더를 Sublime Text 3로 열어서 SFTP를 설정해줍니다.
config.php 파일을 열어보시면, define("BASE_URL", "");로 되어 있는 부분이 있습니다. 이 부분을 자신이 폴더를 업로드를 하여 만들어진 주소를 입력하시면 됩니다. 만약 public_html에 바로 올리신 경우에는 http://server.com/과 같이 사용하시면 되고, public_html의 하위 폴더로 auto_reply를 생성해서 거기에 올리시는 경우에는 http://server.com/auto_reply/ 로 입력하시면 됩니다. 참고로 마지막 부분이 꼭 '/'로 끝나야 합니다!!
다음으로 이 부분의 경우에는 서브 디렉토리로 해서 카카오톡 봇을 운영하는 사람에 대해서만 해당하는 부분입니다. (즉 public_html 폴더에 바로 올리는 것이 아닌 하위에 폴더를 만들어서 사용하는 사람들은 이 부분을 세팅하셔야 합니다.) .htaccess 파일을 열어보시면, RewriteRule ^(.*)$ /index.php/?id=$1 [L] 로 되어 있는 부분이 있습니다. 이 부분을 자신의 상황에 맞게 변경을 해주셔야 합니다. 예를 들어 public_html의 하위 폴더인 auto_reply로 사용할 경우에는 RewriteRule ^(.*)$ /auto_reply/index.php/?id=$1 [L] 와 같이 변경을 해주셔야 합니다.
이렇게 하면 파일 수정은 끝났고, 이제 이 파일들을 서버에 전부 올리시면 됩니다.
업로드가 끝났으면 이제 해당하는 주소로 접속합니다. 즉, 앞의 과정에서 BASE_URL로 설정을 했던 주소로 접속을 하시면 됩니다. 그러면 아래 사진처럼 설치가 필요하다는 화면을 보실 수 있습니다. Install을 누릅니다.
다음 화면은 관리자의 ID와 비밀번호를 설정하는 부분입니다. 참고로 비밀번호는 평문 php 파일로 저장되기 때문에 여기에서만 사용할 비밀번호를 입력하시기 바랍니다.
다음 화면은 초기 Keyboard를 설정하는 부분입니다. 이 부분은 처음에 사용자가 들어왔을 떄 보여줄 버튼들을 사용하는 부분으로 여러 개를 사용하고 싶으시다면 Enter로 구분해서 입력하시면 됩니다. 여기서는 '안녕'과 '자기소개'를 초기 Keyboard값으로 사용하도록 하겠습니다.
그러면 이제 관리자 ID와 초기 Keyboard로 무엇을 생성했는지를 보여주는 창을 볼 수 있습니다. 여기까지 해서 서버에 기본적인 세팅을 끝났습니다.
이제 마지막으로 카카오톡 서버와 우리의 서버를 연동시키는 작업을 하면 됩니다. 이 부분의 경우에는 옐로 아이디 심사가 통과된 사람들만 진행을 할 수 있습니다.
일단 옐로 아이디 홈페이지(https://yellowid.kakao.com/login)에 접속하셔서 로그인을 합니다. 심사가 통과되었다면 아래와 같은 화면을 보실 수 있습니다.
좌측에 있는 메뉴에서 자동응답을 누릅니다. 그러면 아래 사진과 같은 화면을 볼 수 있고, 여기에서 오른쪽에 있는 API형 자동응답 부분에서 '설정하기'를 누릅니다.
이 화면에서 앱 등록하기를 누릅니다.
앱 이름과 앱 설명은 아무렇게나 입력하셔도 상관이 없습니다. 그리고 앱 URL의 경우에는 맨 처음에 BASE_URL로 설정했던 주소를 입력하시면 됩니다. 그리고 전화번호를 입력해서 인증을 하면 됩니다. 참고로 여기서 입력할 전화번호의 형식은 010-XXXX-XXXX로 입력하는게 아니라 010XXXXXXXX와 같은 형태로 해야지 인식이 되는 것으로 보입니다.... 뭐지...?
그리고 URL이 정상적으로 잘 동작하는지 확인하기 위해서 앱 URL 옆에 있는 API TEST 버튼을 누르시면 됩니다. 만약 설정이 잘 되었다면 아래와 같은 화면을 볼 수 있습니다.
이렇게 설정을 마치고 저장을 누르시면 아래 화면과 같은 화면을 볼 수 있습니다. 여기에서 API Test를 누른 다음에, 서비스 시작을 누르면 카카오톡 서버와 우리 서버의 연동이 끝났습니다.
이제 자동응답이 잘 작동하는지 확인해보기 위해서 친구추가를 해서 버튼을 눌러봅니다. 참고로 처음에 버튼들은 잘 뜨지만 버튼을 눌렀을 떄 아직 구현되지 않은 사항이라는 에러 메시지를 볼 수 있습니다.
이 부분은 아직 우리가 버튼에 대한 기능들을 추가하지 않았기 떄문에 발생하는 것입니다. 그래서 다음 시간에는 버튼을 눌렀을 때 어떤 응답을 보여줄지를 만들어서 보여주는 기능을 구현해보도록 하겠습니다.
'컴퓨터 > 기타' 카테고리의 다른 글
Project 2.0 카카오톡 자동 응답봇 만들기[4] (11) | 2016.07.26 |
---|---|
Project 2.0 카카오톡 자동 응답봇 만들기[3] (2) | 2016.07.19 |
Project 2.0 카카오톡 자동 응답봇 만들기[2] (80) | 2016.07.17 |
Project 2.0 카카오톡 자동 응답봇 만들기[1] (0) | 2016.07.16 |
Project 2.0 카카오톡 자동 응답봇 만들기[0] (1) | 2016.07.15 |
도서 바코드 인식기 프로그램 제작 (3) (0) | 2016.01.28 |
안녕하세요 글 잘 봤습니다
닷홈 무료 호스팅에다가 업로드를 해놓고 쓰는 중인데요 Failed to load home keyboard가 뜹니다.
어떻게 해야 할까요?
제대로 설치가 되지 않았거나 서버 설정이 제대로 되지 않은 것 같네요. 사이트 주소를 알려주셔야 확인이 가능할 것 같습니다.
비밀댓글입니다
아 그 부분은 버튼 부분의 버그 때문에 '제출' 이라고 글씨가 쓰여진 부분을 누르셔야 합니다.
비밀댓글입니다
지금 군 복무 중이라 도와드리기가 어려울 것 같네요 ㅠㅠㅠ
ㅠㅠㅠ 안녕하세요 로그인까지 하고 버튼 추하기누른다음 테스트 과정에서 Failed to load Home keyboard가 나오는데 해결 방안 없을까요
그 내용만 가지고는 어떤 문제인지를 모르겠네요.
안녕하세요 현재 config.php 파일에서 url 수정하는 부분을
http://주소:포트번호/kakao_auto_reply-master/ 로 수정하고
.htaccess 파일을 RewriteRule ^(.*)$ /kakao_auto_reply-master/index.php/?id=$1 [L]
로 수정 하였습니다.
그리고 사용하고자 하는 서버에 kakao_auto_reply-mater 디렉터리를 옮겼습니다.
그런데 익스플로러 url에서 http://주소:포트번호/kakao_auto_reply-master 를 치면 페이지를 표시할 수 없다고 나옵니다. 어떻게 해야 문제를 해결할 수 있을까요?
비밀댓글로 서버 주소랑 포트번호를 알려주시면 나중에 확인해보도록 하겠습니다. 지금은 뭐가 문제인지를 잘 모르겠네요...
비밀댓글입니다
php버전을 알 수 있을까요? 지금 서버는 nodejs 기반으로 돌아가고 있는 것 같습니다.
비밀댓글입니다
음.. apache로 돌리고 계신거 맞으신가요??
비밀댓글입니다
htaccess 파일을 설정에 맞게 수정하셨나요?
비밀댓글입니다
php 5.3 버전을 사용하고 계신가보군요. 일단 임시로 admin.php에서 11번째
줄에 있는 session_status() == PHP_SESSION_NONE를 !is_session_start()로 고쳐서 사용하시기 바랍니다.
비밀댓글입니다
그 문제는 아니고 아마 htaccess 파일을 잘못 설정해서 그런 것으로 보입니다.
비밀댓글입니다
BASE_URL을 설정해주셨나요?
좋은글 감사드립니다^^ 혹시 failed to load home keyboard에러 해결 방법 설명 부탁드려도 될까요?
directory allowovrride all 도 해주고 mod_rewrite #도 뺐는데 변화가없네요 ㅠㅠ
#부분을 빼시고 apache서버를 다시 실행해주셔야 적용이 됩니다.
안녕하세요 질문드리겠씁니다..
설정을다하고 apache24 htdocs 파일에 다 넣고 주소로 들어가니 install 버튼은 잘떳습니다 근데 install 버튼을 누르면 404 하면서 오류가 뜹니다.. 아마도 서버설정을 못한것같은데 어덯게 해결하시는지 아시나요?
정확한 오류 내용을 올려주셔야 알 수 있습니다..
폴더를 업로드 한다는 뜻이 뭔가요 ㅠㅠ 이해가 하나도 안되서 ㅠㅠ
파일을 압축푸시면 나오는 폴더를 그대로 서버에 올리시면 됩니다.
저 옐로아이디가 플러스 친구로 바뀌어서... 않되는데여?!?!?!
플러스친구로 바뀌어도 스펙은 똑같기 때문에 실행이 안되는 것은 아닙니다..
php와 apache를 연동해서 사용하려고 하는데요. 글에서 나온 폴더를 업로드 한다는 것이 apache 폴더에서 php파일을 넣는 곳에 업로드를 하라는 건가요?
그리고 서버를 구현하실 때 , 리눅스환경에서 구현하셨나요?
웹서버가 돌아가는 곳에 올리시면 됩니다. 보통 리눅스에서는 /var/www/html 위치가 됩니다.
그리고 리눅스 환경에서 실습하였습니다.
비밀댓글입니다
아마 kakao 폴더 안에 keyboard라는 이름의 폴더를 생성하셔서 그러는 것으로 보이네요. 해당 이름의 폴더를 삭제하시고 그래도 안되면 ftp 계정의 id와 비밀번호을 알려주시면 좋겠습니다...
비밀댓글입니다
config.php
// Update your base url.
define("BASE_URL", "http://서버이름/auto_reply/");
.htaccess
RewriteRule ^(.*)$ /auto_reply/index.php/?id=$1 [L]
위와 같이 작성 마치고 자체 FTP 서버(알FTP) 에 업로드 한 뒤 http://서버이름/auto_reply/로 이동해서 계정생성, 키보드설정 까지 마쳤는데요
Home Keyboard 보기/수정에 들어가면 Failed to load home keyboard 팝업창이 뜹니다.
API 테스트로 BASE URL을 넣으면 다음과 같은 결과창이 뜹니다.
Required*
keyboard Fail 415
wrong keyboard initialization
작성자님이 알려주신 프로그램과 방법대로 계속해서 시도 하는 중인데 한번도 먹히질 않네요...
도움이 필요합니다ㅠㅠㅠ
해당 내용만 가지고는 정확히 어떤 내용인지 모르겠네요...
따로 웹호스팅을 받으시는 것이 아니라 직접 서버를 구축한 경우에는 mod_rewrite 모듈이 활성화 되어있는지를 확인해보시기 바랍니다.
메시지 php에서 db조회가 왜 안될까요? ㅠ 다른 php 화면에서는 정상적으로 되서 메시지 php로 옮겻는데
$result = mysqli_query($conn, $query);
이거부터 연결이 안되네요 ㅠ
db연결 방법이 없을까요
<?php
// content : 카테고리안내
use \kakao\Msg;
use \kakao\Msg\Message;
use \kakao\Keyboard;
include("../../dbconnect.php");
//4. 쿼리 생성
$query = "select seq, category from kakao_category";
//5. 쿼리 실행
$result = mysqli_query($conn, $query);
$category_list = "";
//6. 결과 처리
while($row = mysqli_fetch_array($result)) {
$category_list = $category_list.$row['category'];
}
echo new Msg(
new Message(
"$category_list",
NULL,
NULL
),
TRUE
);
//6. 연결 종료
mysqli_close($conn);
?>
일단 include("../../dbconnect.php"); 부분을 include_once __DIR__ . "/../../dbconnect.php"; 로 바꾸시고 해보시고 안되면 $conn 변수에 값이 들어있는지를 찍어보시기 바랍니다.
도움이 많이되고 있습니다 먼저 좋은 정보 감사드립니다.
다름이 아니라 설정대로 했는데 저는 BASE_URL을 치면 install화면이 아니라 폴더 디렉토리화면이 뜹니다.. .htaccess가 안먹는건지 직접 BASE_URL을 치고 index.php를 클릭해야 말씀하신 install화면이 뜹니다. 혹시 어떻게 설정해야 하는지 알 수 있을까요?
파일을 제대로 설치하지 않는 것으로 보이네요. index.php 파일이 있기 때문에 폴더 디렉토리 화면이 뜰 수가 없습니다.
비밀 댓글로 BASE_URL을 알려주시면 한 번 확인해보도록 하겠습니다.
초보라 그런데 서버에 올리라고 하심은 서버구축을 먼저 해야한다는 말씀이신가요?
서버에 올려야한다고 하셨을때부터 따라가지 못하고있습니다 아파치 서버를 이용하는건가요?
네 서버 구축을 먼저 하셔야 합니다.
서버는 아파치 서버를 사용하시면 됩니다.