PHP와 카카오톡 자동응답 API를 이용하여 학식 봇 제작 해보자! 2탄!



두둠칫 두둠칫

벌써 2탄! 의식의 흐름 기법대로 마구마구 써내려 가는 포스팅!

이번에는 keyboard.php를 누르면 응답할 수 있도록 만들겁니다!

이번 포스팅은 매우매우 간단하고 짧게! 

이전 포스팅에 이어서 쓰는 글입니다~

http://jmoon.co.kr/115


경로는  : /var/www/html/Kakao_Bot/message.php

keyboard.php와 마찬가지로 경로는 개발환경에 따라 달라지겠지만 message.php는 변하지 않는다!

아래의 소스를 참고해서 쓰면 되겠다. 딱히 설명할게 없는 듯 하다 이번엔..

아 참! <?php와 ?>를 빠뜨리면 안된다. 이건 php이기때문에!

$data = json_decode(file_get_contents('php://input'), true); $content = $data["content"]; if($content == "button1") { echo <<< EOD { "message": { "text" : "여긴 button1"}, "keyboard":{ "type" : "buttons", "buttons":[ "button1", "button2", "button3", "button4", "button5" ] } } EOD; else if($content == "button2") { echo <<< EOD { "message": { "text" : "여긴 button2"}, "keyboard":{ "type" : "buttons", "buttons":[ "button1", "button2", "button3", "button4", "button5" ] } } EOD; }

(위의 소스에 <p>같은 쓰레기 값이 있는데 이것도 부디 지우고 사용하길 바란다... 설마 그대로 쓰는 사람 없겠지?)

※한번 더 강조하지만 ,이나 괄호를 꼭꼭 두번 세번 네번 열다섯번 다시 확인하자.. 하나가 빠져서 기능이 제대로 구현 안될 가능성이 있다... 필자는 여기서도 ' , ' 쉼표를 빠져서 한동안 해맸다.. 



"여긴 button1" 에는 변수도 들어가므로 변수로 값을 출력할 수 있다.

"message" 뒤에 있는 "keyboard"가 없다면 출력하고 나서 다음 키보드가 나오지 않거나 늦게 나온다.

그래서 "keyboard"값에는 keyboard.php에 있는 값 그대로 쓰면 된다.

해보진 않았지만 keyboard값을 바꿔서 연속적으로 질 -> 답 -> 다른질문 -> 답으로 진행할 수 있을 것이다.

위와 같이 if문으로 쭈루룩~ 만들어도 되고, 좀 더 효율적으로 만들려면 함수형태로 구현해도 될 것이다.

아주 직관적으로 만들기 위해서 그냥 if문으로 쭉 만들었다...(절대 귀찮아서 그런거 아님..)

기본적인 소양만 있다면 저기서 함수로 바꿔서 하던지 버튼 개수만큼 if수를 늘여서 짜는 것이 가능 할것이다!!

코드가 더럽다고 해버리면..

이 친구들이 혼내줄거야


위의 기본 소스를 그대로 적용하면 아래의 Keyboard영역에는 button1, button2 ....등등이 나올거고

button1을 누르면 "여긴 button1"이라는 텍스트가 출력이 될 것이다. 위의 소스 그대로 button1이 나오는 걸

캡쳐로 보여주고 싶지만.. 이미 완성한걸 지워서 하고 싶진 않기때문에.. 아마 될거라고 생각이 된다..

안되면 아마 오타 몇개만 고치면 될 거에요..하하핳..

무책임에 대한 이미지 검색결과




기본적인 형태는 위와같은 소스이므로 여기서 자신의 입맛에 맞게 수정하면 될것이다.

다음 포스팅은 학식을 파싱, 크롤링하여 텍스트로 저장하는 것을 해보겠다!

이것은 파싱, 크롤링이 대상이 되는 홈페이지가 구성이 천차만별이므로 이것은 각 개발자 분들이

잘.. 요리해서 값을 뽑아내야한다..

필자가 값을 뽑아 내는 방법도 정말... 날로.. 가라로.. 저급하게.. 했기 때문에 하핳..




아래의 사진은 위의 기본 소스를 수정하여 응답이 올 수 있도록 값을 처리 하고 호출한 결과이다.


(수전증이 가득한 빨간색 선)



  1. apache2 쓰는분 2018.01.28 11:42

    http://jmoon.co.kr/107 참고해서 apache2.conf파일 수정하면 카카오톡이 message.php를 확장자 없이 읽을수 있습니다.

  2. 코리언 2018.06.08 19:37

    $content 가 안넘어오는데
    이런 경우는 어떤 경우가 있을까요?
    json_encode($data,JSON_UNESCAPED_UNICODE); 이런형태도 잡아보고
    여러가지 방법을 썼는데 값이 안들어와 답답한 마음에 문의 드립니다

+ Recent posts