코린이 자바로 카톡 메시지 보내기 실습중입니다. 도움 부탁드립니다!

앱 아이디 928902
템플릿 아이디 95312

자바로 엑셀 파일 읽어서 데이터 추출 후 카톡 메시지 보내는 기능 실습중인데요~
template id can’t be null -2 오류를 해결 하지 못하고 있습니다.
엑세스 토큰도 제대로 넣었고, 템플릿 아이디도 등록해서 정확하게 넣었는데
왜 이와 같은 오류가 계속 날까요?
아래는 제가 실행한 코드 중 api호출하는 메서드입니다.


private static void sendKakaoTalkMessage(String phoneNumber, String name) throws Exception {

        // API 요청 URL

        String url = "https://kapi.kakao.com/v2/api/talk/memo/send";

        // 카카오톡 API 토큰

        String accessToken = "엑세스 토큰 값이 들어가는 자리";

        String message = name + "님, 안녕하세요. 주문이 완료되었습니다.";

        // 요청 헤더 설정

        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();

        conn.setRequestMethod("POST");

        conn.setRequestProperty("Authorization", "Bearer " + accessToken);

        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");

        // 요청 바디 설정

        String requestBody = "template_object={\"object_type\":\"text\",\"text\":\"" + message

                + "\",\"link\":{\"web_url\":\"\"},\"button_title\":\"\",\"template_id\":\"95312\"}";

        conn.setDoOutput(true);

        OutputStream outputStream = conn.getOutputStream();

        outputStream.write(requestBody.getBytes());

        outputStream.flush();

        outputStream.close();

        // 응답 처리

        int responseCode = conn.getResponseCode();

        BufferedReader reader;

        if (responseCode == HttpURLConnection.HTTP_OK) {

            reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

        } else {

            reader = new BufferedReader(new InputStreamReader(conn.getErrorStream()));

        }

        StringBuilder response = new StringBuilder();

        String line;

        while ((line = reader.readLine()) != null) {

            response.append(line);

        }

        reader.close();

        System.out.println(response.toString());

    }

}

안녕하세요.

해당 기능은 사용자 정의 템플릿을 사용하는 API 입니다.
template_id 파라미터가 누락되어 있습니다.

다음 문서를 참고 부탁드립니다.

https://developers.kakao.com/docs/latest/ko/message/rest-api#custom-template-msg

답변주셔서 감사드립니다. 초보라 이해가 어려워서 문서를 읽긴 했는데, 어디를 고쳐야 될 지 잘 모르겠습니다. 우선 요청 헤더 설정 하는 부분에 conn.setRequestProperty(“template_id”, “95312”); 와 같이 코드를 추가했는데 이게 아닌지 또 template_id can’be null -2에러가 발생합니다. 어떻게 해야할까요! 고견 부탁드립니다.

form-urlencoded 방식으로 파라미터를 전달해야만 합니다.

위 내용은 template_id를 사용하지 않는 기본 템플릿 방식의 파라미터 이며, template_object= 의 값 부분은 인코딩되어 있지 않습니다.

사용자 정의 템플릿을 사용하는 경우 아래와 같이 파라미터가 셋팅됩니다.
참고 부탁드립니다.

 writer.write("template_id=12345&receiver_uuids=%5B%22abcdefg00 ...