먹고 기도하고 코딩하라

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (4) - 카카오 오픈빌더와 챗봇 서버 연동하기 본문

개발일지

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (4) - 카카오 오픈빌더와 챗봇 서버 연동하기

사과먹는사람 2020. 3. 1. 15:18
728x90
728x90

이전 글 보기

 

파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (3) - 챗봇 자동답변 구현

이전 글 보기 파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (2) - 프로젝트 셋팅: Apache2 + mod-wsgi로 Django 앱 배포 이전 글 보기 파이썬 장고로 카카오 i 오픈빌더 챗봇 만들기 (1) - 가상환경 설정, Dj

dev-dain.tistory.com

 

 

이 포스팅에서는 전에 설정 다 해둔 챗봇 서버와 카카오톡 채널을 연동하는 방법을 다뤄보겠습니다.

여기서 카카오 i 오픈빌더 로그인을 하십시오. 기본적으로 이미 OBT 승인을 받았다는 가정 하에 진행합니다.

카카오톡 챗봇 생성을 하고 들어갑니다.

설정 탭에서 카카오톡 채널 연결에서 테스트할 채널을 선택해 주시고 저장을 누르십시오.

그런 다음 시나리오 탭으로 갑니다.

 

제가 1월부터 쓰고 있던 챗봇이라 이미 시나리오들이 몇 개 있지만, 다른 건 무시하십시오.

파란색 시나리오 버튼을 누르면 시나리오가 하나 생깁니다.

시나리오 등의 자세한 설명이 보고 싶다면 설명서에서 확인하시길 바랍니다.

시나리오를 만들면 '시나리오 01' 하면서 시나리오가 생기는데, 저는 이 시나리오 이름을 '테스트 시나리오'로 바꿔놨습니다.

블록 추가를 해서 블록도 하나 만듭시다. 저는 이름을 '테스트 블록'이라고 지었습니다.

이제 이전 포스팅에서 한 views.py를 실험해볼까요? 참고로 views.py 코드는 다음과 같습니다.

 

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json

# Create your views here.
def keyboard(request):
    return JsonResponse({
        'type': 'text'
    })

@csrf_exempt
def message(request):
    answer = ((request.body).decode('utf-8'))
    return_json_str = json.loads(answer)
    return_str = return_json_str['userRequest']['utterance']

    if return_str == '테스트':
        return JsonResponse({
            'version': "2.0",
            'template': {
                'outputs': [{
                    'simpleText': {
                        'text': "테스트 성공입니다."
                    }
                }],
                'quickReplies': [{
                    'label': '처음으로',
                    'action': 'message',
                    'messageText': '처음으로'
                }]
            }
        })

 

제가 기대하는 효과는 '테스트'라고 입력하면 "테스트 성공입니다" 라는 말과 함께 '처음으로'라는 버튼이 나오는 것입니다.

이렇게 하려면 일단 블록을 저장한 다음 스킬 탭으로 가서 스킬 생성을 하면 됩니다.

스킬 이름을 적당히 정한 다음, url에는 갖고 있는 서버의 IP 주소를 적고 /message까지 붙여줍니다.

그러고 나서 저장하면 됩니다. ver. 1로 자동 저장됩니다.

 

 

다시 시나리오 탭으로 돌아가 아까 그 테스트 시나리오의 테스트 블록을 엽니다. 파라미터 설정 옆의 두 개의 option에서 아까 만든 스킬을 선택하고 버전 선택을 합니다. 봇 응답에는 스킬 데이터 사용을 선택합니다. 그러고 나서 블록을 저장합니다. 참 쉽죠?

그리고 배포 탭에서 스킬 배포를 해줘야 합니다! 이 부분을 잊어버리고 하지 않으면 적용이 되지 않습니다.

 

 

제가 테스트용으로 만들어둔 카카오톡 채널과 연결해서 실험해봤습니다.

 

 

원래는 '테스트'가 아닌 다른 것을 입력하면 저렇게 나오지는 않습니다. 제가 못 알아듣는 말이 있을 때 나올 말을 따로 지정했기 때문에 가능한 것입니다. 여담으로 저렇게 하려면 기본 블록인 '폴백 블록'에서 응답을 미리 지정해주면 됩니다. 

 

 

이것으로 기본적인 봇 설정은 끝났습니다. 저는 여기에 더해 동적 웹페이지인 저희 학교 홈페이지에 맞춰 파이어폭스 게코 드라이버를 설치하고 크롤링 파일을 따로 만드는 등의 과정을 통해 다음과 같은 학식봇을 만들었습니다.

 

 

이 시리즈는 여기서 마칩니다.

이 시리즈의 후속 시리즈인 동적 웹페이지를 크롤링하는 포스팅을 곧 준비하겠습니다. 

읽어주셔서 감사합니다. ^^

 

 

함께 읽어볼 만한 글

 

Python Django 기반의 카카오톡 API 챗봇 -> i 챗봇으로 변경하기

이 포스팅은 원래 카카오톡에서 API로 채팅봇을 운영하던 사람이 i 챗봇에서 스킬을 이용해서 똑같이 운영할 수 있는 간단한 방법을 알리는 포스팅이다. 참고로 여기서는 Django 를 이용한 앱만 설명하며, Flask는..

dev-dain.tistory.com

 

 

Reference

카카오 i 오픈빌더 도움말

 

 

728x90
반응형
Comments