본문 바로가기
Back-end

Python으로 카카오톡 플러스친구 만들기 -2-

by 노아론 2017. 12. 17.

Python으로 카카오톡 플러스친구 만들기

-목차- 
Python으로 카카오톡 플러스친구 만들기 -1- 
Python으로 카카오톡 플러스친구 만들기 -2- 
Python으로 카카오톡 플러스친구 만들기 -3- 
Python으로 카카오톡 플러스친구 만들기 -4-

Python으로 카카오톡 플러스친구 만들기 -5-


본 튜토리얼은 카카오 Plusfriend Open API종료로 신규 생성이 불가합니다!
조만간 연재되는 카카오i 플러스친구 Skill 튜토리얼을 참고해주세요
-2018/12/19-

두번째 카톡플친 만들기 튜토리얼입니다.
처음 보시는 분은 [Python으로 카카오톡 플러스친구 만들기 -1-]을 먼저 읽어주세요.


- my_chatbot
    - app
        - __init__.py
        - admin.py
        - apps.py
        - models.py
        - tests.py
        - view.py
    - my_chatbot
        - __init__.py
        - settings.py
        - urls.py
        - wsgi.py
    - manage.py

저번 튜토리얼에서 진행한대로 이런 프로젝트 파일들이 생겼을겁니다


이번 튜토리얼에선 카카오톡 자동응답API의 사용법에 대해 알려드릴게요


카카오톡 자동응답API는 아래와 같은 4가지에 대한 호출이 있습니다.
* Home Keyboard API
* 메시지 수신 및 자동응답 API
* 친구 추가/차단 알림 API
* 채팅방 나가기



튜토리얼에서는 Home Keyboard API메시지 수신 및 자동응답 API에 대해 다룰겁니다


카카오톡 서버에서 Home Keyboard APIhttp://서버주소/keyboard
메시지 수신 및 자동응답 APIhttp://서버주소/message에 요청하게 되는데
이에 맞춰 개발자가 정보를 return 하도록 구현하면 됩니다.


(아아 나는 무슨말인지 하나도 모르게따)
무슨말인지 하나도 모르게따


코드를 통해 따라 해볼게요!

먼저, my_chatbot/urls.py 에 들어갑시다

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

urls.py파일에 이렇게 적혀있을거에요. 우린 app/views 파일을 이곳에서 쓸 수 있게 해야돼요

from django.conf.urls import url
from django.contrib import admin
from app import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

이렇게 추가해줍니다.


views.py 를 다뤄보자

카카오톡 플러스친구는http://개발자서버/keyboard 에서 아래와 같이 받아냅니다.는
(라고 Github 카카오자동응답API 설명서 에 쓰여있습니다)

{
    "type" : "buttons",
    "buttons" : ["선택 1", "선택 2", "선택 3"]
}

우리는 views.py파일에서 위와 같이 동작하도록 만들거에요!

여러분의 views.py파일에 아래와 같이 모듈을 임포트 해주세요

from django.http import JsonResponse

# Create your views here.

from django.http import JsonResponse을 추가한 이유는
카카오톡 플러스친구에 Json파일 타입으로 주어야 하기 때문이에요(REST API이니깐!)

저는 훕포메이션 플러스친구의 내용을 이용할게요.
buttons에는 갯수 상관없이 여러분이 원하는 버튼으로 추가해주면 돼요

from django.http import JsonResponse

def keyboard(request):

    return JsonResponse(
        {
        'type': 'buttons',
        'buttons': ['학식', '내일의 학식', '도서관']
        }
    )



urls.pykeyboard 추가하기

http://개발자서버/keyboard에 접속할때 위의 내용을 보내야하는데
우리는 아직 url 설정을 하지 않았어요.

my_chatbot_urls.py을 열어서 urlpatterns 에 아래와 같이 추가해줍니다

from django.conf.urls import url
from django.contrib import admin
from app import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^keyboard',views.keyboard)      # 이 부분을 추가했습니다
]

이렇게 개발자서버/keyboard에서 정보를 받게끔 만들어보았어요.
잘 따라온건지 확인을 해볼게요

manage.py가 있는 디렉토리에서

[~/파일경로/my_chatbot]$ python manage.py runserver

이렇게 실행을 합니다.

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 17, 2017 - 07:56:19
Django version 2.0, using settings 'my_chatbot.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

migrate를 하지 않았다고 뜨지만 우리는 지금 단순히 keyboard가 잘되는지만 확인 할거라 무시해도 돼요

127.0.0.1:8000/keyboard 에 들어가봅니다.

{"type": "buttons", "buttons": ["\ud559\uc2dd", "\ub0b4\uc77c\uc758 \ud559\uc2dd", "\uc2dc\uac04\ubcc4 \ud559\uc2dd", "\uc774\ubbf8\uc9c0 \ud559\uc2dd", "\ub3c4\uc11c\uad00", "\ucea0\ud37c\uc2a4 \ubcc0\uacbd"]}

위와 비슷한 내용이 웹에 뜨면 성공입니다!

<buttons내용이 왜 이래요? 라고 의문을 가지고 계시는 분들을 위해서>
-> 한글은 유니코드로 저장이 되기때문에 이렇게 표현이 되는데요. 플러스친구에서는 정상적으로 뜨게 됩니다



다음 튜토리얼에서는 지금까지 만든 코드들을 어떻게 플러스친구에 적용하는지 알아보도록 할게요


댓글