메시지 발송 예제
해당 페이지에서는 SOLAPI Node.js SDK를 이용하여 메시지를 발송하는 방법에 대해 가이드하고 있습니다.
Node.js SDK를 통해 빠르고 쉽게 메시지를 발송해보세요!
- 해당 페이지에서 작성된 모든 코드는 JavaScript로 작성되었습니다.
- 각 발송 예시에 대한 결과 값 표시 기능은 현재 준비중에 있습니다.
- 해당 예제는 Node.js SDK 5.2.0 버전을 기준으로 작성되었습니다.
- 여러 건 발송이나 더 다양한 예제를 확인해보고 싶으신 경우 SDK 샘플 코드 페이지를 확인해보세요!
- 발송 요청을 하실 때 반드시 발신번호와 수신번호는 01012345678 형식으로 요청하셔야 합니다!
- +, -, * 특수문자 등 삽입 불가
// 예시, 다른 파라미터 생략, json 형식
{
"from": "029302266",
"to": "029302266"
}
🔗 SDK Reference(send 메소드 명세 확인)
🔗 SDK 샘플 코드 페이지
환경설정
터미널에서 연동할 프로젝트의 폴더로 이동하신 다음 아래와 같은 명령어를 입력하여 SDK를 설치해보세요!
- npm
- Yarn
- pnpm
npm install --save solapi
yarn add solapi
pnpm add solapi
문자 발송
Node.js로 문자를 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 문자를 발송해보세요!
단문 문자(SMS) 발송
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
messageService.send({
'to': '수신번호 입력',
'from': '계정에서 등록한 발신번호 입력',
'text': 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
});
장문 문자(LMS) 발송
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
messageService.send({
"to": "수신번호 입력",
"from": "계정에서 등록한 발신번호 입력",
"text": "한글 45자, 영자 90자 이상 입력되면 자동으로 LMS타입의 문자메시지가 발송됩니다. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ",
// "subject": "문자 제목" // LMS, MMS 전용 옵션, SMS에서 해당 파라미터 추가될 경우 자동으로 LMS로 변환됩니다!
});
사진 문자(MMS) 발송
const path = require("path");
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("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 전용) 발송
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "국제번호를 제외한 수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "한글 45자, 영자 90자 이하 입력되면 자동으로 SMS타입의 메시지가 발송됩니다.",
"country": "1" // 미국 국가번호, 국가번호 뒤에 추가로 번호가 붙는 국가들은 붙여서 기입해야 합니다. 예) 1 441 -> "1441"
});
카카오 알림톡/친구톡 발송
Node.js로 알림톡/친구톡을 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 알림톡/친구톡을 발송해보세요!
알림톡 발송
알림톡 템플릿 내 치환문구(변수)가 없을 경우 text 파라미터를 기입하시는 것이 아닌
kakaoOptions 내 variables를 빈 오브젝트({})로 기입하셔야 합니다.
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
"templateId": "등록한 알림톡 템플릿의 ID",
// 치환문구가 없을 때의 기본 형태
"variables": {}
// 치환문구가 있는 경우 추가, 반드시 key, value 모두 string으로 기입해야 합니다.
/*
variables: {
"#{변수명}": "임의의 값"
}
*/
// disbaleSms 값을 true로 줄 경우 문자로의 대체발송이 비활성화 됩니다.
// disableSms: true,
}
});
카카오톡 해외 번호 가입자에 대한 알림톡 발송방법
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"country": "국가번호", // 해당 수신번호의 국가번호를 입력, 예) 미국: "1", 일본: "81"
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId",
"templateId": "등록한 알림톡 템플릿의 ID",
// 치환문구가 없을 때의 기본 형태
"variables": {}
// 치환문구가 있는 경우 추가, 반드시 key, value 모두 string으로 기입해야 합니다.
/*
variables: {
"#{변수명}": "임의의 값"
}
*/
// disbaleSms 값을 true로 줄 경우 문자로의 대체발송이 비활성화 됩니다.
// disableSms: true,
}
});
친구톡 발송
친구톡에서는 버튼과 이미지를 모두 포함하여 발송하실 수 있습니다.
자세한 사항은 각각의 예제를 참고하여 연동해주세요.
단순 텍스트 친구톡 발송
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
// 반드시 발신번호와 수신번호는 01012345678 형식으로 입력해주세요!
messageService.send({
"to": "수신번호",
"from": "계정에서 등록한 발신번호 입력",
"text": "2,000byte 이내의 메시지 입력",
"kakaoOptions": {
"pfId": "연동한 비즈니스 채널의 pfId"
}
});
버튼을 포함한 친구톡 발송
친구톡 버튼은 최대 5개 까지만 삽입하실 수 있습니다.
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("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": "챗봇 문의"
}*/
]
}
});
이미지를 포함한 친구톡 발송
const path = require("path");
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("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(단문 문자)만 제공되지만, 모든 발송 수단에서 사용할 수 있습니다!
const { SolapiMessageService } = require('solapi');
const messageService = new SolapiMessageService("API 키 입력", "API 시크릿 키 입력");
// string 타입의 날짜로 보낼 경우
messageService.send({
"to": '수신번호 입력',
"from": '계정에서 등록한 발신번호 입력',
"text": 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
}, {
"scheduledDate": '2022-12-07 00:00:00'
});
// Date 타입의 날짜로 보낼 경우
// 2022년 12월 7일 0시 0분 0초
const date = new Date(2022, 11, 7, 0, 0, 0);
messageService.send({
"to": '수신번호 입력',
"from": '계정에서 등록한 발신번호 입력',
"text": 'SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.'
}, {
"scheduledDate": date
});