Python으로 카카오톡 플러스친구 만들기
-목차-
Python으로 카카오톡 플러스친구 만들기 -1-
Python으로 카카오톡 플러스친구 만들기 -2-
Python으로 카카오톡 플러스친구 만들기 -3-
Python으로 카카오톡 플러스친구 만들기 -4-
본 튜토리얼은 카카오 Plusfriend Open API종료로 신규 생성이 불가합니다!조만간 연재되는 카카오i 플러스친구 Skill 튜토리얼을 참고해주세요-2018/12/19-
저번 내용
버튼마다 응답메세지를 다르게 해보자
사용자를 구별해보자
이번에 할 내용
사용자가 사진,음성, 동영상 같은 파일을 보내면?
사용자를 구분해보자
지금까지 한 것대로 플러스친구를 작동시켜 사진, 음성메세지, 동영상을 보내면 오류가 뜨게 됩니다.
아래 사진은 사진을 보낼 때 뜨게되는 오류입니다.
저번 튜토리얼에서 진행한 views.py
파일은 아래와 같습니다.
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
def keyboard(request):
return JsonResponse(
{
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
)
@csrf_exempt
def message(request):
#button = ['학식', '내일의 학식', '시간별 학식']
json_str = (request.body).decode('utf-8')
received_json = json.loads(json_str)
content_name = received_json['content']
#user_name = received_json['user_key']
#user_name은 사용자를 구별하기 위해 사용됨
#type_name = received_json['type']
#type_name은 사용자가 보낸 값의 속성을 구별(text,photo 등)
if content_name == "학식":
return JsonResponse(등
{
'message': {
'text': '학식을 눌렀습니다.'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
elif content_name == "내일의 학식":
return JsonResponse(
{
'message': {
'text': '내일의 학식을 눌렀습니다'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
elif content_name == '시간별 학식':
return JsonResponse(
{
'message': {
'text': '시간별 학식을 눌렀습니다'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
if, elif
로만 구성되어있기에 조건에 맞지 않는 경우는 오류가 발생하게 됩니다.
views.py
코드의 마지막에 아래 내용을 추가해주세요
else:
return JsonResponse(
{
'message': {
'text': '버튼이 아닙니다'
},
'keyboard':{
'type':'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
이렇게 해결할 수 있지만, 사용자가 보낸 내용이 사진인지, 음성파일인지는 알 수 없습니다.
구분을 위해서 사용자가 보내는 content
가 아닌, type
을 이용해야 합니다.
content_name = received_json['content'] #버튼 명 / 파일의 경우 URL
type_name = received_json['type'] #파일 타입(버튼,사진,오디오,영상)
user_name = received_json['user_key'] #사용자마다의 고유번호
위처럼 사용자에게서 받은 정보를 이용할 수 있습니다.
참고! => type에는
text
,photo
,video
,audio
가 있습니다
아래 코드는 type_name
을 이용한 예시입니다.
else:
mess = "이걸 보고계시다면 오류입니다, 개발자에게 알려주세요"
if type_name == 'photo':
mess = "사진은 기능이 없어요, 버튼을 눌러주세요!"
elif type_name == 'video':
mess = "영상은 기능이 없어요, 버튼을 눌러주세요!"
elif type_name == 'audio':
mess = "녹음파일은 기능이 없어요, 버튼을 눌러주세요!"
return JsonResponse({
'message': {
'text': mess
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
})
이번 튜토리얼에서 진행한
views.py
소스코드입니다.
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
def keyboard(request):
return JsonResponse(
{
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
)
@csrf_exempt
def message(request):
#button = ['학식', '내일의 학식', '시간별 학식']
json_str = (request.body).decode('utf-8')
received_json = json.loads(json_str)
content_name = received_json['content']
# user_name = received_json['user_key']
type_name = received_json['type']
if content_name == "학식":
return JsonResponse(
{
'message': {
'text': '학식 버튼을 눌렀습니다.'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
elif content_name == "내일의 학식":
return JsonResponse(
{
'message': {
'text': '내일의 학식 버튼을 눌렀습니다'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
elif content_name == '시간별 학식':
return JsonResponse(
{
'message': {
'text': '시간별 학식을 눌렀습니다'
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
}
)
else:
mess = "이걸 보고계시다면 오류입니다, 개발자에게 알려주세요"
if type_name == 'photo':
mess = "사진은 기능이 없어요, 버튼을 눌러주세요!"
elif type_name == 'video':
mess = "영상은 기능이 없어요, 버튼을 눌러주세요!"
elif type_name == 'audio':
mess = "녹음파일은 기능이 없어요, 버튼을 눌러주세요!"
return JsonResponse({
'message': {
'text': mess
},
'keyboard': {
'type': 'buttons',
'buttons': ['학식', '내일의 학식', '시간별 학식']
}
})
이것으로 Python 카카오톡 플러스친구 만들기의 API 사용 튜토리얼을 끝냅니다.
Google Cloud Platform을 이용해 Django서버를 작동시키는 방법
Crawler, Parser와 cron job에 대해 이어가겠습니다.
'Back-end' 카테고리의 다른 글
Django Apache2 연동 (0) | 2018.04.25 |
---|---|
Python uwsgi로 서버 배포 (0) | 2018.04.23 |
Python으로 카카오톡 플러스친구 만들기 -4- (0) | 2017.12.25 |
Python으로 카카오톡 플러스친구 만들기 -3- (7) | 2017.12.19 |
Python으로 카카오톡 플러스친구 만들기 -2- (7) | 2017.12.17 |
댓글