Develop/RubyonRails

루비온레일즈로 간단한 카카오 챗봇 개발 [Ruby on Rails]

김니은  2019. 9. 4. 22:48
반응형

흐름은 클라이언트 내에서 원하는 데이터를 서버에 요청하면 서버 내에서 해당 데이터를 보내줍니다.

 

Ruby는 서로 다른 언어 형태이므로 JSON을 이용하여 형식을 변경하여 보내줍니다.

 

1. C9 세팅

 

저는 AWS 내의 C9을 이용하여 개발을 하였습니다. 처음 시작을 하기 전에 먼저 C9 - Ruby on Rails를 여신 후 아래 창에

rails g controller kakaokakao_initkakao_message

을 입력하여 controller를 생성해줍니다.

 

2. https://center-pf.kakao.com 계정 생성

 

플러스 친구 계정을 생성을 하게 되면 아래 그림과 같은 화면이 나타나게 됩니다.

첫 페이지 화면

 

좌측에 스마트 채팅을 클릭하면 2가지 형태가 있는데 저는 API 형태를 사용하였습니다.

스마트채팅 화면

 

1번에서 C9을 생성하였을 경우 주소를 갖게됩니다. 해당 주소를 앱 URL에 작성하여 API 테스트를 하시면 됩니다.

API형태로 생성

 

 

3. Controller 작성

이제 정상적으로 작동을 하는지 간단하게 작성해보겠습니다.

아래 표는 각 필드 마다의 타입 및 설명내용 입니다.

필드명 타입 필수 여부 설명
text String Optional 사용자에게 발송될 텍스트 (최대 1000자)
photo Photo Optional 말풍선에 들어갈 이미지 정보 (1장 제한)
message_button MessageButton Optional 말풍선에 붙는 링크 버튼 정보

 


def kakao_init
	@msg= {
    		type: "buttons",
            buttons: ["소개"]
          }
    render json: @msg, status :ok
end

def kakao_message
	@response = params[:content]
    	if @response == "소개"
        	@msg = {
            	message: {
                	text: "안녕하세여"
       			},
  			keyboard: {
            	type: "buttons",
                buttons: ["소개"]
            	}
        	}
   			render json: @msg, status: :ok
       	end
 end

이렇게만 끝내도 예외처리당해서 작동되지 않습니다.

 

ApplicationController을 변경해줘야 합니다.

 

해당 줄을 주석처리 해줘야 정상 작동합니다.

 

위의 response에서는 "해당 텍스트"를 통해 글을 불러왔지만 데이터베이스 내 id 값을 이용하여 자료도 읽어올 수 있습니다.

 

반응형