카카오 챗봇을 만들어서 영수증을 다운로드 받을 수 있게 하기
챗봇 서버로는 구름IDE의 Flask 서버를 사용했다.
카카오 I 빌더에서 봇을 하나 만들고, 카카오 채널 관리자에서 채널을 하나 만들어서 연결해준다.
챗봇 관리자센터 > 설정 > 챗봇관리 에서 카카오톡 채널을 연결해준다.
시나리오에서 블록추가
번호판은 개인마다 다 다른데 어떻게 하지? 하고 고민하다가, 엔티티 등록을 발견했다.
사용자 발화는 가능하면 사용자가 입력할 거 같은 많은 패턴으로 넣어주는 것이 좋다.
다른 간단한 응답이 필요하면 카카오챗봇에서 제공하고 있는 블록응답을 사용해도 되지만,
자동차 차넘버가 들어왔을 때 번호에 대한 값들을 제공할 것이기 때문에 스킬데이터를 사용한다.
URL에는 route해준 페이지까지 넣어서 전체 주소를 입력해주면 된다.
일단 잘 연결이 되었는지 확인하기 위해 Flask의 main.py 에는 아래와 같이 코드를 넣어줬다.
/download_receipt 을 보면 request.get_json() 으로 봇에서 페이지로 전달된 내용을 가져올 수 있다.
dictionary 형태로 전달되기 때문에 그 중에서 필요한 내용을 저렇게 가져오면 된다.
from flask import Flask, request, jsonify
application = Flask(__name__)
@application.route("/")
def hello():
return "Hello goorm!"
@application.route("/download_receipt",methods=['POST'])
def re():
body = request.get_json()
print(body)
print(body['userRequest']['utterance'])
res = {
"version": "2.0",
"template": {
"outputs": [
{
"simpleText": {
"text":"hi"
}
}
]
}
}
# 답변 전송
return res
if __name__ == "__main__":
application.run(host='0.0.0.0', port=80, threaded=True)
현재는 발화패턴만 맞으면 무조건 'hi'를 찍도록 해놔서전달하면 'hi'가 출력된다.
오랜만에 봇을 만들어봤는데, 기억이 새록새록 난다.
원래 js로 window.open 으로 페이지가 열리면 자동으로 함수가 실행되게 했는데 잘 안된다.
(제대로 알고 쓰는게 아니니 그럴 수 밖에..)
그래서 PIL로 직접 영수증 이미지를 만들어서 진행할 예정.