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 테스트가 정상적으로 작동이 되시면 이제 카카오 챗봇을 확인해주시면 됩니다.
정상적으로 작동되는 것을 확인할 수 있었습니다.