카카오 챗봇 제작하기

[ 카카오톡 오픈빌더 신청하기 ]

키카오톡 오픈빌더를 통해서 카카오 챗봇을 제작할 수 있습니다.
kakao chatbot openbuilder login

카카오톡 오픈빌더에 접속해 왼쪽의 카카오톡 채널 챗봇 만들기를 선택하여 로그인하고 신청합니다. (신청 후 일정 기간이 지나면 승인됩니다.)

[ 채널 ]

챗봇을 사용하려면 챗봇을 연결할 채널이 필요합니다.
kakao chatbot make channel

카카오톡 관리자 센터에 접속해 채널을 생성해 줍니다.

[ 챗봇 만들기 ]

kakao chatbot make bot

승인이 되었다면 카카오톡 오픈빌더에 접속하여 +를 눌러 카카오 챗봇을 만들어 줍니다.

[ 시나리오 ]

시나리오는 카카오 챗봇에서 제공하는 여러 블록들로 구성된 서비스 단위입니다.
kakao chatbot make senario

  • 블록
    블록은 대화의 최소단위로 사용자 발화 - 봇 응답으로 구성되어 있습니다.
  • 블록 제작하기
    kakao chatbot user talk

    블록에서 사용자가 입력할 것 같은 발화를 등록해줍니다.
    kakao chatbot response buttons

    그리고 텍스트, 카드, 스킬 등을 이용하여 해당 발화에 대한 응답을 설정할 수 있습니다.
    버튼을 이용하면 다른 블록을 직접 연결하거나 메세지를 전송하도록 하여 다른 블록으로 넘어갈 수 있습니다.

  • 봇 테스트
    kakao chatbot bot test

    저장하여 등록했다면 오른쪽 상단의 봇테스트를 통해서 확인해 볼 수 있습니다.

< 기본 시나리오 >

  • 웰컴 블록
    웰컴 블록에서는 봇이 사용자와 처음 채팅을 시작할 때 보여줄 응답을 지정할 수 있습니다.
  • 폴백 블록
    폴백 블록에서는 봇이 이해할 수 없는 발화에 대한 응답을 지정할 수 있습니다.
  • 탈출 블록
    탈출 블록에서는 대화를 초기화하거나 끝내기 위해 사용할 발화를 지정할 수 있습니다.

[ 스킬 ]

스킬은 사용자가 필요로 하는 정보를 웹 서버에서 처리하여 제공할 수 있습니다.
인터넷상에 있어 자주 변하는 정보, 복잡한 연산을 필요로 하는 정보들은 관리자가 직접 등록하기에는 한계가 있습니다. 이런 정보를 스킬을 통해 잘 처리하여 제공할 수 있습니다.
kakao chatbot skill network

  • 스킬 제작
    스킬 탭에서 스킬을 생성하겠습니다.
    kakao chatbot skill

    URL에 스킬을 제공할 서버의 접속 주소를 입력해줍니다.

    {
        "version": "2.0",
        "data": 
        {
            "name":"Googy Bot",
            "age":"1"
        }
    }

    위는 스킬 응답 예시입니다. 챗봇과 서버는 JSON 형식으로 통신합니다.

    • version: 챗봇이 응답을 이해하는데 필요한 버전입니다. (작성하지 않으면 1.0으로 인식합니다.)
    • data: 실질적으로 우리가 사용할 응답 데이터입니다.
  • 블록 - 스킬 연결
    스킬 응답을 돌려주는 서버를 만들었다면 이를 블록에서 사용할 수 있습니다.
    kaka chatbot skill block

    그림과 같이 스킬을 지정하면 {{#webhook.KEY}}로 스킬 서버에서 받은 데이터를 활용할 수 있습니다.

  • 스킬 자체 응답 작성하기
    봇 응답을 서버에서 모두 처리하는 방법도 있습니다.
    스킬 서버에서 template을 구성해 보내주고 봇 응답으로 스킬 데이터를 사용하면 됩니다.

    {
        "version": "2.0",
        "template": {
            "outputs": [
                {
                    "basicCard":{
                        "title":"Skill Test",
                        "buttons": [
                            {
                              "action": "message",
                              "label": "보기",
                              "messageText": "보기"
                            }
                        ]
                    }
                }
            ]
        }
    }

    kaka chatbot skill response

  • 스킬 파라미터
    스킬에서 파라미터를 입력으로 받아 처리한다면 하나의 스킬을 가지고 여러 블록에서 사용할 수 있습니다.

스킬을 위한 Request, Reponse에 대한 자세한 내용은 카카오의 [응답 타입별 JSON 포맷] 문서를 참고하시면 좋을 것 같습니다.

[ MORE ]

지금까지 기본적인 기능을 제공할 수 있는 카카오톡 챗봇을 제작해보았습니다.
카카오 오픈빌더에는 더 많은 기능들이 있으니 더 공부하실 분은 [오픈 빌더 가이드]를 참조하시길 바랍니다.

googy

I'm Googy. If you like to see other work, visit My GitHub!