카카오 메시지(알림톡) 발송하기

알림톡은 카카오톡 채널을 통해 고객에게 정보성 메시지를 발송할 수 있는 비즈니스 메시징 서비스입니다.
사전에 승인된 템플릿을 기반으로 발송되며, 문자 메시지보다 풍부한 콘텐츠와 높은 도달률을 제공합니다.
알림톡 발송 전 필수 준비사항
알림톡을 발송하기 위해서는 다음 사항이 필요합니다:
- 카카오 비즈니스 채널 생성 및 연동
- 알림톡 템플릿 등록 및 승인 완료
- 발신 프로필 ID 확인
- 템플릿 ID 확인
기본 알림톡 발송하기
가장 기본적인 알림톡 발송 방법입니다. 변수가 없는 템플릿을 사용하여 단순 메시지를 발송합니다.
const sendon = new Sendon({
id: SENDON_EXAM_ACCOUNT,
apikey: SENDON_EXAM_API_KEY,
debug: false,
})
const result = await sendon.kakao.sendAlimTalk({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
to: [SENDON_EXAM_KAKAO_TO_PHONE],
})
Sendon sendon = Sendon.getInstance(SENDON_EXAM_ACCOUNT, SENDON_EXAM_API_KEY);
SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
.setTo(Arrays.asList(SENDON_EXAM_KAKAO_TO_PHONE)));
여러 수신자에게 동일한 알림톡 발송하기
한 번의 API 호출로 여러 수신자에게 동일한 내용의 알림톡을 발송할 수 있습니다.
const result = await sendon.kakao.sendAlimTalk({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
to: [SENDON_EXAM_KAKAO_TO_PHONE
SENDON_EXAM_KAKAO_TO_PHONE2,
SENDON_EXAM_KAKAO_TO_PHONE3
],
})
SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
.setTo(Arrays.asList(
SENDON_EXAM_KAKAO_TO_PHONE,
SENDON_EXAM_KAKAO_TO_PHONE2,
SENDON_EXAM_KAKAO_TO_PHONE3
)));
변수가 포함된 알림톡 발송하기
템플릿에 변수가 포함된 경우, 각 수신자별로 다른 변수값을 적용하여 개인화된 메시지를 발송할 수 있습니다.
const result = await sendon.kakao.sendAlimTalk({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
to: [
{
phone: SENDON_EXAM_KAKAO_TO_PHONE,
variables: {
'#{승인금액}': '1,000',
'#{사용처}': '카카오페이',
'#{누적결제액}': '3,000',
},
},
],
})
JsonObject to = new JsonObject();
to.addProperty("phone", "01053601894");
JsonObject variables = new JsonObject();
variables.addProperty("#{승인금액}", "1,000");
variables.addProperty("#{사용처}", "카카오페이");
variables.addProperty("#{누적결제액}", "3,000");
to.add("variables", variables);
SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
.setTo(Arrays.asList(to)));
주의: 변수는 반드시
#{변수명}
형식으로 작성해야 하며, 템플릿에 정의된 모든 변수에 대한 값을 제공해야 합니다.
파라미터 상세 설명
필수 파라미터
파라미터 | 타입 | 설명 |
---|---|---|
sendProfileId | string | 카카오 비즈니스 채널의 발신 프로필 ID |
templateId | string | 사전 승인된 알림톡 템플릿 ID |
to | string[] 또는 object[] | 수신자 정보 (전화번호 또는 전화번호와 변수값) |
선택 파라미터
파라미터 | 타입 | 설명 |
---|---|---|
reservation.dateTime | string | 예약 발송 시간 (ISO 8601 날짜 형식) |
fallback | object | 대체발송 설정 |
fallback.fallbackType | string | 대체발송 유형 ('CUSTOM') |
fallback.custom.type | string | 대체발송 메시지 종류 ('SMS', 'LMS', 'MMS') |
fallback.custom.senderNumber | string | 대체발송 발신번호 |
fallback.custom.message | string | 대체발송 메시지 내용 |
fallback.custom.title | string | 대체발송 메시지 제목 (LMS, MMS의 경우) |
fallback.custom.isAd | boolean | 광고성 메시지 여부 (true/false) |
응답 형식
성공적으로 요청이 처리되면 다음과 같은 응답을 받습니다:
{
"code": 200,
"message": "성공",
"data": {
"groupId": "84db8cbb-db70-4e68-8ee7-c37704787e0d"
}
}
이 groupId
는 발송 요청의 고유 식별자로, 발송 결과 조회 시 활용할 수 있습니다.
주의사항
- 알림톡은 정보성 메시지에만 사용해야 합니다
- 모든 알림톡은 사전 승인된 템플릿을 기반으로 발송됩니다
- 템플릿 내용을 임의로 변경하거나 광고성 내용을 포함할 경우 발송이 차단될 수 있습니다
- 변수값은 템플릿 검수 기준에 부합하는 내용이어야 합니다
- 전화번호는 하이픈(-) 없이 제공해야 합니다 (예: 01012345678)
관련 링크
Updated 4 days ago