본문으로 건너뛰기

메시지 발송 예제

해당 페이지에서는 COOLSMS Node.js SDK를 이용하여 메시지를 발송하는 방법에 대해 가이드하고 있습니다.
Node.js SDK를 통해 빠르고 쉽게 메시지를 발송해보세요!

정보
  • 해당 페이지에서 작성된 모든 코드는 JavaScript로 작성되었습니다.
  • 각 발송 예시에 대한 결과 값 표시 기능은 현재 준비중에 있습니다.
  • 해당 예제는 Node.js SDK 5.1.4 버전을 기준으로 작성되었습니다.
  • 여러 건 발송이나 더 다양한 예제를 확인해보고 싶으신 경우 SDK 샘플 코드 페이지를 확인해보세요!
위험
  • 발송 요청을 하실 때 반드시 발신번호와 수신번호는 01012345678 형식으로 요청하셔야 합니다!
  • +, -, * 특수문자 등 삽입 불가
// 예시, 다른 파라미터 생략, json 형식
{
"from": "029302266",
"to": "029302266"
}

환경설정

터미널에서 연동할 프로젝트의 폴더로 이동하신 다음 아래와 같은 명령어를 입력하여 SDK를 설치해보세요!

npm install --save coolsms-node-sdk

문자 발송

Node.js로 문자를 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 문자를 발송해보세요!

단문 문자(SMS) 발송

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

messageService.send({
'to': '수신번호 입력',
'from': '계정에서 등록한 발신번호 입력',
'text': 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
});

장문 문자(LMS) 발송

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

messageService.send({
"to": "수신번호 입력",
"from": "계정에서 등록한 발신번호 입력",
"text": "한글 45자, 영자 90자 이상 입력되면 자동으로 LMS타입의 문자메시지가 발송됩니다. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ",
// "subject": "문자 제목" // LMS, MMS 전용 옵션, SMS에서 해당 파라미터 추가될 경우 자동으로 LMS로 변환됩니다!
});

사진 문자(MMS) 발송

Node.js
const path = require("path");
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// MMS 용 이미지 업로드에는 200kb 이내의 jpg 파일만 업로드할 수 있습니다!
const imageId = await messageService.uploadFile(path.join(__dirname, "이미지 파일 경로"), "MMS")
.then(res => res.fileId);

messageService.send({
"imageId": imageId,
"to": "수신번호 입력",
"from": "계정에서 등록한 발신번호 입력",
"text": "MMS는 한글 45자, 영자 90자 이상을 입력할 수 있습니다. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// "subject": "문자 제목" // LMS, MMS 전용 옵션, SMS에서 해당 파라미터 추가될 경우 자동으로 LMS로 변환됩니다!
});

해외 문자(SMS 전용) 발송

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "국제번호를 제외한 수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "한글 45자, 영자 90자 이하 입력되면 자동으로 SMS타입의 메시지가 발송됩니다.",
"country": "1" // 미국 국가번호, 국가번호 뒤에 추가로 번호가 붙는 국가들은 붙여서 기입해야 합니다. 예) 1 441 -> "1441"
});

카카오 알림톡/친구톡 발송

Node.js로 알림톡/친구톡을 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 알림톡/친구톡을 발송해보세요!

알림톡 발송

주의

알림톡 템플릿 내 치환문구(변수)가 없을 경우 text 파라미터를 기입하시는 것이 아닌
kakaoOptions 내 variables를 빈 오브젝트({})로 기입하셔야 합니다.

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
"templateId": "등록한 알림톡 템플릿의 ID",
// 치환문구가 없을 때의 기본 형태
"variables": {}

// 치환문구가 있는 경우 추가, 반드시 key, value 모두 string으로 기입해야 합니다.
/*
variables: {
"#{변수명}": "임의의 값"
}
*/

// disbaleSms 값을 true로 줄 경우 문자로의 대체발송이 비활성화 됩니다.
// disableSms: true,
}
});

카카오톡 해외 번호 가입자에 대한 알림톡 발송방법

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"country": "국가번호", // 해당 수신번호의 국가번호를 입력, 예) 미국: "1", 일본: "81"
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
"templateId": "등록한 알림톡 템플릿의 ID",
// 치환문구가 없을 때의 기본 형태
"variables": {}

// 치환문구가 있는 경우 추가, 반드시 key, value 모두 string으로 기입해야 합니다.
/*
variables: {
"#{변수명}": "임의의 값"
}
*/
// disbaleSms 값을 true로 줄 경우 문자로의 대체발송이 비활성화 됩니다.
// disableSms: true,
}
});

친구톡 발송

친구톡에서는 버튼과 이미지를 모두 포함하여 발송하실 수 있습니다.
자세한 사항은 각각의 예제를 참고하여 연동해주세요.

단순 텍스트 친구톡 발송

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "2,000byte 이내의 메시지 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId"
}
});

버튼을 포함한 친구톡 발송

위험

친구톡 버튼은 최대 5개 까지만 삽입하실 수 있습니다.

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "2,000byte 이내의 메시지 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
// 버튼은 최대 5개까지 삽입하실 수 있습니다.
"buttons": [
{
"buttonType": "WL", // 웹링크
"buttonName": "버튼 이름",
"linkMo": "https://m.example.com",
"linkPc": "https://example.com" // 생략 가능
},
{
"buttonType": "AL", // 앱링크
"buttonName": "실행 버튼",
"linkAnd": "examplescheme://",
"linkIos": "examplescheme://"
},
{
"buttonType": "BK", // 봇키워드(챗봇에게 키워드를 전달합니다. 버튼이름의 키워드가 그대로 전달됩니다.)
"buttonName": "봇키워드"
},
{
"buttonType": "MD", // 상담요청하기 (상담요청하기 버튼을 누르면 메시지 내용이 상담원에게 그대로 전달됩니다.)
"buttonName": "상담요청하기"
},
{
"buttonType": "BC", // 상담톡으로 전환합니다 (상담톡 서비스 사용 시 가능)
"buttonName": "상담톡 전환"
}
/*{
"buttonType": "BT", // 챗봇 운영시 챗봇 문의로 전환할 수 있습니다.
"buttonName": "챗봇 문의"
}*/
]
}
});

이미지를 포함한 친구톡 발송

Node.js
const path = require("path");
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// 친구톡 이미지 업로드에는 500KB 이내의 이미지(png, jpg) 파일만 업로드하실 수 있습니다!
const imageId = await messageService.uploadFile(path.join(__dirname, "이미지 경로"), "KAKAO")
.then(res => res.fileId);

// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "2,000byte 이내의 메시지 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
"imageId": imageId
}
});

예약 발송

예약 발송은 모든 발송 수단(문자, 알림톡 등)에서 사용할 수 있는 기능입니다.
예약 발송 기능은 앞서 안내된 각 코드의 send 메소드에서 두 번째 파라미터로 날짜(string 타입 혹은 Date 타입)를 입력하면 해당 날짜로 예약 접수가 진행됩니다.

주의

예약 날짜가 현재 시각보다 더 과거의 시간일 경우 즉시 발송 접수가 진행됩니다.

발송 예시

발송 예시는 SMS(단문 문자)만 제공되지만, 모든 발송 수단에서 사용할 수 있습니다!

Node.js
const { CoolsmsMessageService } = require('coolsms-node-sdk');
const messageService = new CoolsmsMessageService("API 키 입력", "API 시크릿 키 입력");

// string 타입의 날짜로 보낼 경우
messageService.send({
"to": '수신번호 입력',
"from": '계정에서 등록한 발신번호 입력',
"text": 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
}, '2022-05-30 00:00:00');

// Date 타입의 날짜로 보낼 경우
// 2022년 5월 30일 0시 0분 0초
const date = new Date(2022, 4, 30, 0, 0, 0);

messageService.send({
"to": '수신번호 입력',
"from": '계정에서 등록한 발신번호 입력',
"text": 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
}, date);