이번에 살펴볼 내용은 카카오톡 자동 응답 서비스를 구현하기 위한 서버 구축을 하려고 합니다. 일단 아직 카카오톡 플러스 친구에 가입하지 않은 경우에는 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를 누른 다음에, 서비스 시작을 누르면 카카오톡 서버와 우리 서버의 연동이 끝났습니다.



이제 자동응답이 잘 작동하는지 확인해보기 위해서 친구추가를 해서 버튼을 눌러봅니다. 참고로 처음에 버튼들은 잘 뜨지만 버튼을 눌렀을 떄 아직 구현되지 않은 사항이라는 에러 메시지를 볼 수 있습니다.



이 부분은 아직 우리가 버튼에 대한 기능들을 추가하지 않았기 떄문에 발생하는 것입니다. 그래서 다음 시간에는 버튼을 눌렀을 때 어떤 응답을 보여줄지를 만들어서 보여주는 기능을 구현해보도록 하겠습니다.

블로그 이미지

humit

평범하면서 주변에서 흔히 볼 수 있는 공대생

댓글을 달아 주세요

  • 이전 댓글 더보기
  • Soboro 2017.02.26 01:07 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 글 잘 봤습니다
    닷홈 무료 호스팅에다가 업로드를 해놓고 쓰는 중인데요 Failed to load home keyboard가 뜹니다.
    어떻게 해야 할까요?

    • humit 2017.03.11 10:56 신고  댓글주소  수정/삭제

      제대로 설치가 되지 않았거나 서버 설정이 제대로 되지 않은 것 같네요. 사이트 주소를 알려주셔야 확인이 가능할 것 같습니다.

  • 2017.02.28 17:27  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • 2017.03.10 14:28  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • kyd2502 2017.04.11 15:10 신고  댓글주소  수정/삭제  댓글쓰기

    ㅠㅠㅠ 안녕하세요 로그인까지 하고 버튼 추하기누른다음 테스트 과정에서 Failed to load Home keyboard가 나오는데 해결 방안 없을까요

  • juns3800 2017.05.11 17:05 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 현재 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 를 치면 페이지를 표시할 수 없다고 나옵니다. 어떻게 해야 문제를 해결할 수 있을까요?

  • 2017.05.24 16:55  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • 2017.05.28 22:38  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • humit 2017.06.26 00:21 신고  댓글주소  수정/삭제

      php 5.3 버전을 사용하고 계신가보군요. 일단 임시로 admin.php에서 11번째
      줄에 있는 session_status() == PHP_SESSION_NONE를 !is_session_start()로 고쳐서 사용하시기 바랍니다.

  • 2017.06.21 01:58  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • 2017.07.06 23:51  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • 학생 2017.07.21 00:19 신고  댓글주소  수정/삭제  댓글쓰기

    좋은글 감사드립니다^^ 혹시 failed to load home keyboard에러 해결 방법 설명 부탁드려도 될까요?
    directory allowovrride all 도 해주고 mod_rewrite #도 뺐는데 변화가없네요 ㅠㅠ

  • 초심자 2017.07.26 10:20 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 질문드리겠씁니다..
    설정을다하고 apache24 htdocs 파일에 다 넣고 주소로 들어가니 install 버튼은 잘떳습니다 근데 install 버튼을 누르면 404 하면서 오류가 뜹니다.. 아마도 서버설정을 못한것같은데 어덯게 해결하시는지 아시나요?

  • 초보자 2017.07.28 22:56 신고  댓글주소  수정/삭제  댓글쓰기

    폴더를 업로드 한다는 뜻이 뭔가요 ㅠㅠ 이해가 하나도 안되서 ㅠㅠ

  • 저 옐로아이디가 풀러스친구로 바뀌어서 그런거 같아염! 2017.09.07 17:00 신고  댓글주소  수정/삭제  댓글쓰기

    저 옐로아이디가 플러스 친구로 바뀌어서... 않되는데여?!?!?!

  • bonnavaro 2017.11.03 00:42 신고  댓글주소  수정/삭제  댓글쓰기


    php와 apache를 연동해서 사용하려고 하는데요. 글에서 나온 폴더를 업로드 한다는 것이 apache 폴더에서 php파일을 넣는 곳에 업로드를 하라는 건가요?

    그리고 서버를 구현하실 때 , 리눅스환경에서 구현하셨나요?

    • humit 2017.11.15 18:17 신고  댓글주소  수정/삭제

      웹서버가 돌아가는 곳에 올리시면 됩니다. 보통 리눅스에서는 /var/www/html 위치가 됩니다.

      그리고 리눅스 환경에서 실습하였습니다.

  • 2017.12.02 14:52  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • humit 2017.12.03 08:00 신고  댓글주소  수정/삭제

      아마 kakao 폴더 안에 keyboard라는 이름의 폴더를 생성하셔서 그러는 것으로 보이네요. 해당 이름의 폴더를 삭제하시고 그래도 안되면 ftp 계정의 id와 비밀번호을 알려주시면 좋겠습니다...

  • 2017.12.03 08:42  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  • Fail415 2018.03.20 11:24 신고  댓글주소  수정/삭제  댓글쓰기

    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

    작성자님이 알려주신 프로그램과 방법대로 계속해서 시도 하는 중인데 한번도 먹히질 않네요...
    도움이 필요합니다ㅠㅠㅠ

    • humit 2018.04.08 21:04 신고  댓글주소  수정/삭제

      해당 내용만 가지고는 정확히 어떤 내용인지 모르겠네요...
      따로 웹호스팅을 받으시는 것이 아니라 직접 서버를 구축한 경우에는 mod_rewrite 모듈이 활성화 되어있는지를 확인해보시기 바랍니다.

  • DB조회 2018.05.13 22:32 신고  댓글주소  수정/삭제  댓글쓰기

    메시지 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);

    ?>

    • humit 2018.05.17 12:00 신고  댓글주소  수정/삭제

      일단 include("../../dbconnect.php"); 부분을 include_once __DIR__ . "/../../dbconnect.php"; 로 바꾸시고 해보시고 안되면 $conn 변수에 값이 들어있는지를 찍어보시기 바랍니다.

  • thisisme 2018.06.21 16:37 신고  댓글주소  수정/삭제  댓글쓰기

    도움이 많이되고 있습니다 먼저 좋은 정보 감사드립니다.

    다름이 아니라 설정대로 했는데 저는 BASE_URL을 치면 install화면이 아니라 폴더 디렉토리화면이 뜹니다.. .htaccess가 안먹는건지 직접 BASE_URL을 치고 index.php를 클릭해야 말씀하신 install화면이 뜹니다. 혹시 어떻게 설정해야 하는지 알 수 있을까요?

    • humit 2018.07.01 14:54 신고  댓글주소  수정/삭제

      파일을 제대로 설치하지 않는 것으로 보이네요. index.php 파일이 있기 때문에 폴더 디렉토리 화면이 뜰 수가 없습니다.
      비밀 댓글로 BASE_URL을 알려주시면 한 번 확인해보도록 하겠습니다.

  • Superjames 2018.09.12 10:56 신고  댓글주소  수정/삭제  댓글쓰기

    초보라 그런데 서버에 올리라고 하심은 서버구축을 먼저 해야한다는 말씀이신가요?
    서버에 올려야한다고 하셨을때부터 따라가지 못하고있습니다 아파치 서버를 이용하는건가요?