[ 작업 환경 ]
Python3.6
1. 알리고 API 사용법 터득을 위해 아래 글을 참조한 후 본 글을 읽으시면 더 쉽게 이해할 수 있습니다.
https://growingsaja.tistory.com/520
알리고 홈페이지에서 카카오톡 -> 관리 페이지에서 아래 데이터들을 확인할 수 있습니다. 제공받은 데이터를 작성해주면 됩니다.
# 알리고 사용하기
import requests, json
ALIGO_APIKEY = 'a254e5f64b53nh3gddl6z42dlwpq5lk7'
ALIGO_USERID = 'testbiz'
ALIGO_SENDERKEY = '4927b8a6e6e25038b39c2f29239030eb2402df13'
2. 메시지 발송을 위한 토큰 생성 요청
result_token['code'] 값이 0일 경우, 정상적으로 토큰이 생성되었다는 의미입니다.
# 토큰 생성
url_get_token = 'https://kakaoapi.aligo.in/akv10/token/create/30/s/'
for_token_data = {
'apikey' : ALIGO_APIKEY,
'userid': ALIGO_USERID
}
response = requests.post(url_get_token, data=for_token_data)
response.status_code
result_text = response.text
result_token = response.json()
3. 사용 가능한 템플릿 정보 가져오기
template_list 에 최종적으로 들어가는 데이터들은 사용 가능한 템플릿 코드들입니다.
# 토큰 생성 성공
if result_token['code'] == 0:
# 모든 템플릿 코드들 가져오기
token = result_token['token']
url_get_template_list = 'https://kakaoapi.aligo.in/akv10/template/list/'
url_get_template_info = url_get_template_list
for_template_list_data = {
'apikey': ALIGO_APIKEY,
'userid': ALIGO_USERID,
'senderkey': ALIGO_SENDERKEY,
'token': token
}
response = requests.post(url_get_template_list, data=for_template_list_data)
result_template_info = response.json()
template_list = list()
for each_template_info in result_template_info['list']:
template_list.append(each_template_info['templtCode'])
4. 사용할 템플릿 선택
index_in_part 변수에 사용할 템플릿 번째수를 적어주면 됩니다.
# 사용할 템플릿 선택하기
target_template_code = template_list[index_in_part]
for_template_info_data = {
'apikey' : ALIGO_APIKEY,
'userid' : ALIGO_USERID,
'senderkey' : ALIGO_SENDERKEY,
'token' : token,
'tpl_code' : target_template_code
}
response = requests.post(url_get_template_list, data=for_template_info_data)
result_target_template_info = response.json()['list'][0]
5. 사용자의 휴대폰번호 정보와 사용할 템플릿 정보로 카카오톡 알림톡 발송
user_info 에는 사용자에 대한 정보가 들어있습니다. 각자 상황에 맞게 필요한 데이터를 가져옵니다.
url_send_kakao = 'https://kakaoapi.aligo.in/akv10/alimtalk/send/'
target_template_code = template_list[index_in_part]
message_1 = result_target_template_info['templtContent']
# 수신자에게 알림톡 발송하기
for_send_kakao_data = {
'apikey' : ALIGO_APIKEY,
'userid' : ALIGO_USERID,
'senderkey' : ALIGO_SENDERKEY,
'token' : token,
'tpl_code' : target_template_code,
'sender' : '01023452345',
'receiver_1' : user_info['phone_number'],
'subject_1' : result_target_template_info['templtName'],
'message_1' : message_1
}
response = requests.post(url_send_kakao, data=for_send_kakao_data)
result_send_kakao = response.json()
result = result_send_kakao
print(result)
if result:
if 'code' in result:
if result['code'] == 0:
result=template_list
return jsonify(result)
return jsonify(result='전송실패')
return jsonify(result='전송실패')
return jsonify(result='에러발생')