이 글만을 통해서 간단한 텍스트를 출력하는 카카오톡 챗봇을 만들 수 있습니다.
카카오톡 플러스 친구를 이용합니다.
카카오톡 플러스 친구 생성하기
카카오톡 관리자 센터 페이지로 이동합니다.
플러스친구 만들기를 클릭합니다.
카카오톡 계정으로 로그인을 합니다.
모두 작성하고 확인을 클릭합니다.
Django 설치 및 설정하기
https://tutorial.djangogirls.org/ko/installation/
이곳에 설치 방법이 잘 나와있습니다.
저는 가상환경을 사용하지 않았습니다.
<linux> django 설치하기
~$ pip3 install --upgrade pip
~$ pip3 install django
프로젝트 생성
이제 프로젝트를 생성하겠습니다.
이 내용도
https://tutorial.djangogirls.org/ko/django_start_project/
여기에 잘 나와있습니다.
생성한뒤 폴더나 파일의 이름을 바꾸어선 안됩니다.
$ django-admin startproject [프로젝트 이름] .
마침표 (.) 은 필수입니다.
$ python3 manage.py startapp [어플리케이션 이름]
어플리케이션도 같이 만들겠습니다.
example :
~/project$ mkdir tistory
~/project$ cd tistory/
~/project/tistory$ django-admin startproject mybot .
~/project/tistory$ ls
manage.py mybot
~/project/tistory$ python3 manage.py startapp testest
$ python3 manage.py migrate
이것도 해줍니다.
설정 변경
다음과 같이 변경합니다.
mybot/settings.py
25: # SECURITY WARNING: don't run with debug turned on in production!
26: DEBUG = False
27:
28: ALLOWED_HOSTS = ['*']
* DEBUG는 테스트를 위해선 True, 실제 사용시에는 False로 해두세요. 그냥 False로 해두시는 것을 추천
* ALLOWED_HOSTS=['*']는 모든 아이피를 허용한다는 의미입니다.
mybot/settings.py
31: # Application definition
32:
33: INSTALLED_APPS = [
34: 'django.contrib.admin',
35: 'django.contrib.auth',
36: 'django.contrib.contenttypes',
37: 'django.contrib.sessions',
38: 'django.contrib.messages',
39: 'django.contrib.staticfiles',
40: 'testtest',
41: ]
* 40: 에 어플리케이션 이름을 추가합니다.
mybot/settings.py
108: TIME_ZONE = 'Asia/Seoul'
mybot/urls.py
16: from django.conf.urls import include, url
17: from django.contrib import admin
19: urlpatterns = [
20: url(r'^testtest/', include('testtest.urls')),
21: url(r'^admin/', admin.site.urls),
22: ]
16: include 를 추가합니다.
20: 를 추가합니다. testtest/로 온 요청은 testtest/urls.py로 보내겠다는 의미
testtest/urls.py
1 2 3 4 5 6 7 8 9 | from django.conf.urls import url from . import views urlpatterns = [ url(r'^keyboard/', views.keyboard), url(r'^message$', views.answer), ] | cs |
* mybot/ 경로가 아닌 testtest/ 경로입니다.
* 위 소스그대로 복사해서 파일을 만듭니다.
코드 작성하기
개발환경 : UBUNTU 16.04.3
개발언어: PYTHON 3.5.2
텍스트/코드 에디터: ATOM
testtest/views.py를 수정해주는 것입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | from django.shortcuts import render from django.views.decorators.csrf import csrf_exempt from django.http import JsonResponse import json def keyboard(request): return JsonResponse({ 'type':'buttons', 'buttons':['오늘','내일'] }) @csrf_exempt def answer(request): json_str = ((request.body).decode('utf-8')) received_json_data = json.loads(json_str) datacontent = received_json_data['content'] if datacontent == '오늘': today = "오늘 급식" return JsonResponse({ 'message': { 'text': today }, 'keyboard': { 'type':'buttons', 'buttons':['오늘','내일'] } }) elif datacontent == '내일': tomorrow = "내일 급식" return JsonResponse({ 'message': { 'text': tomorrow }, 'keyboard': { 'type':'buttons', 'buttons':['오늘','내일'] } }) | cs |
8에서 13라인은 카카오톡에 버튼 정보를 보내는 부분.
15부터 48라인은 각 버튼에 대한 응답 내용.
카카오톡 플러스 친구 설정 및 실행, 테스트하기
관리자 센터에서 스마트채팅으로 들어갑니다.
api형 설정하기를 클릭합니다.
앱 이름, 앱 URL, 앱 설명을 작성합니다.
알림받을 전화번호는 카카오톡 가입에 사용한 전화번호를 사용하세요.
앱 URL은 자신의 서버URL을 사용합니다.
$ python3 manage.py runserver port
여기에 사용한 포트 그대로 사용
http://자신의아이피:포트/디렉토리
그리고 api테스트를 클릭하여 정상적으로 작동하는지 확인합니다.
그리고 API형 저정하기를 누릅니다.
시작하기를 눌러서 서비스를 시작합니다.
이제 모바일 카카오톡에 들어갑니다. (모바일 기기에서 진행하세요.)
플러스친구 채팅으로 이동해서
버튼이 잘 뜨는지 확인하고 버튼을 눌렀을때 정상적인 응답이 오는지 확인합니다.
다음은 급식 파서를 활용한 카카오톡 챗봇을 만들겠습니다.
'Project > Programming' 카테고리의 다른 글
[Python] Python으로 디스코드 봇 만들기 (4) - 맴버 관련 기능 추가하기 (5) | 2018.03.30 |
---|---|
[Python] Python으로 카카오톡 봇 만들기 (2) - 급식 파서 활용하기 (14) | 2018.02.22 |
[Python] Python으로 디스코드 봇 만들기 (3) - 부가적 기능 추가하기 (5) | 2018.02.19 |
[Python] Python으로 디스코드 봇 만들기 (2) - 급식 파서 활용하기 (0) | 2018.02.19 |
[Python] Python으로 디스코드 봇 만들기 (1) - 봇 생성부터 테스트까지 (76) | 2018.02.19 |