Develop/Flask

AWS EC2, Flask를 이용한 카카오 챗봇 제작

김니은  2020. 1. 27. 17:25
반응형

Ruby on Rails에 이어 Flask기반으로 카카오 챗봇을 개발해보겠습니다.

AWS 카테고리의 첫번째 글에서 키페어 파일을 계속 갖고 있으셔야 합니다. (필자는 지워버려서 다시 생성하였습니다..)

저는 맥 OSX에서 개발하였습니다.

chmod 400 kim_n.pem

 

먼저 위와 같이 내게만 읽기 권한을 갖도록 권한을 변경합니다.

 

 

테스트로 보여드리는 IP입니다. 지금 다시 주소 변경했습니다.

그 후 위 사진의 DNS 주소를 복사한 후 아래와 같이 입력하여 ssh 접속합니다.

 

ssh -i "kim_n.pem" ubuntu@ec2-15-164-214-51.ap-northeast-2.compute.amazonaws.com

접속이 성공될 경우, 위와 같은 화면을 보실 수 있게 됩니다.

 

ubuntu에 접속하게 되면 python3가 자동적으로 설치되어 있습니다. 이어서 python3-pip와 flask를 설치하셔야 합니다.

sudo apt-get install python3-pip pip3 install flask

위의 두 줄을 차례대로 입력하시면 설치가 완료됩니다.

flask가 설치 되었다면 이제 간단하게 소스를 입력해봅시다! 저는 [vi chat.py] 를 입력하여 chat.py 파일을 생성하였습니다.

 

import os
from flask import Flask, request, jsonify
import json

app = Flask(__name__)

@app.route('/keyboard')
def Keyboard():
	return jsonify ({
		"type" : "buttons",
		"buttons" : ["인사말", "버전"]
	})

@app.route('/message', methods = ["POST"])
def Message():
	dataReceive = request.get_json()
	content = dataReceive['content']

	if content == u"인사말":
		dataSend ={
			"message" : {
				"text" : "안녕하세요! 반갑습니다."
		}
	}
	elif content == u"버전":
		dataSend ={
			"message" : {
				"text" : "아직 프로토타입입니다."
		}
	}

	return jsonify(dataSend)

if __name__ == "__main__":
	app.run(host = '0.0.0.0', port = 8000)

 

아래에 만약 port 8000으로 접속을 원하실 경우, 전 글과 같이 인바운드 규칙에 8000을 추가로 넣어주셔야 합니다.

 

8000번 포트를 추가한 후 작성한 chat,py 파일을 실행 시켜보겠습니다.

 

정상적으로 실행이 되신다면 이제 카카오톡 챗봇 사이트에 해당 주소를 연결합니다.

 

 

API 테스트가 정상적으로 작동이 되시면 이제 카카오 챗봇을 확인해주시면 됩니다.

정상적으로 작동되는 것을 확인할 수 있었습니다.

반응형