Template_id 오류

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱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,] 둘다 시도해봤는데도 그렇습니다. 이유가 뭔지 궁금합니다.

아래 내용 참고해주세요.
“Content-Type: application/x-www-form-urlencoded” 으로 보내야합니다.

카카오톡 메시지: REST API | Kakao Developers 카카오톡 메시지: REST API

[rest api 예제] python (Flask) - 카카오 로그인, 카카오 친구목록 조회, 메시지 발송

본인에게 보내기 방식으로 시도하는 중이며 위 게시글과 같이 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 은 출력시 정상적인 값임을 확인하였습니다.

이 에러는 카카오측으로 template_id가 안넘어왔다는 에러입니다.

x-www-form-urlencoded는 body에 쿼리스트링 형태로 데이터 전송하는 방식으로
기재하신 코드를 보니 body에 json으로 잘못 전달하고 있는 것으로 보입니다.

위에 참조한 예제 코드 확인해주세요.