문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
python 개발 중인데
KAKAO_API_URL = ‘https://kapi.kakao.com/v2/api/talk/memo/send ’
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json'
}
data={
# 'receiver_uuids': json.dumps(uuids), # UUID 배열을 JSON 문자열로 변환
"template_id":'108632',
"template_args": json.dumps({"alt": alt, "tether": tetherline})
}
response = requests.post(KAKAO_API_URL, headers=headers, data=data) # data=data 사용
return response.status_code, response.json()
해당 내용을 실행하는 경우 400, {‘msg’: “template_id can’t be null.”, ‘code’: -2} 라는 내용이 발생합니다. 이전의 답글을 보고 [ “template_id”:‘108632’,] 과 [ “template_id”:108632,] 둘다 시도해봤는데도 그렇습니다. 이유가 뭔지 궁금합니다.
tim.l
6월 17, 2024, 2:39오전
2
본인에게 보내기 방식으로 시도하는 중이며 위 게시글과 같이 urlencoded 로 헤더를 변경했음에도 문제가 발생합니다.
if access_token:
users = User.objects.all()
print(users)
for user in users:
status_code, response_json = send_kakao_message(user.kakao_id, access_token, current_altitude, tetherline)
print(f"카카오 메시지 전송 결과: {status_code}, {response_json}")
def send_kakao_message(kakao_id, access_token, alt, tetherline):
print(kakao_id)
KAKAO_API_URL = 'https://kapi.kakao.com/v2/api/talk/memo/send'
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/x-www-form-urlencoded'
}
data={
# 'receiver_uuids': json.dumps(uuids), # UUID 배열을 JSON 문자열로 변환
"template_id":'108632',
"template_args": json.dumps({"alt": alt, "tether": tetherline})
}
response = requests.post(KAKAO_API_URL, headers=headers, json=data) # json=data 사용
return response.status_code, response.json()
라는 함수를 생성하고 호출하는데
3511844378
카카오 메시지 전송 결과: 400, {‘msg’: “template_id can’t be null.”, ‘code’: -2}
와 같이 나오며 오류가 발생합니다. 왜 그런것인지 궁금합니다. 기입되는 id 및 access token 은 출력시 정상적인 값임을 확인하였습니다.
tim.l
6월 18, 2024, 4:58오전
4
이 에러는 카카오측으로 template_id가 안넘어왔다는 에러입니다.
x-www-form-urlencoded는 body에 쿼리스트링 형태로 데이터 전송하는 방식으로
기재하신 코드를 보니 body에 json으로 잘못 전달하고 있는 것으로 보입니다.
위에 참조한 예제 코드 확인해주세요.