이전 글을 이어서 진행하겠습니다.
알리고 api로 카톡 알림톡을 보내보겠습니다.
알림톡을 진행하기 위해서는 카카오톡 채널 개설이 필수이니 참고해주세요.
아래는 제가 작성한 예시코드입니다.
let type = req.params['type'];
let uphone = req.params['uphone'];
let comPhone = '';
// 발신 전화번호
var tokenData = {
apikey: '',
// 이곳에 발급받으신 api key를 입력하세요
userid: '',
// 이곳에 userid를 입력하세요
}
var tjson = req.body;
if(type=='typeA'){
let uname = tjson.uname,
pdate = tjson.pdate;
logger.error(pdate);
//에러 로그 기록
let msg = `안녕하세요.
알림톡 메세지입니다.
날짜 : ${pdate},
이용자 : ${uname}입니다.
`;
console.log(msg)
req.body = {
type : "i",
time : "30"
}
// req.body = {
/*** 필수값입니다 ***/
// type: 유효시간 타입 코드 // y(년), m(월), d(일), h(시), i(분), s(초)
// time: 유효시간
/*** 필수값입니다 ***/
aligoapi.token(req, tokenData)
.then((r) => {
var token = r['urlencode'];
//알림톡에 버튼추가시 작성
let button = {
button: [{
name: "버튼이름",
linkType:"WL",
linkTypeName: "웹링크",
linkPc: "https://**",
linkMo : "https://**"
}]
};
//api 요청시 필요한 req값
req.body = {
token : token,
senderkey: '센더키',
tpl_code: '템플릿코드',
sender: comPhone,
receiver_1: uphone,
subject_1: '[테스트]',
message_1: msg,
button_1: JSON.stringify(button)
}
aligoapi.alimtalkSend(req, tokenData)
.then((r2) => {
res.send(r2);
})
.catch((e2) => {
logger.error(e2);
console.log(e2);
res.send(e2);
})
})
.catch((e) => {
res.send(e);
console.log(e);
logger.error(e);
})
- 카카오톡 알림톡은 aligoapi.alimtalkSend(req, tokenData)를 사용하여 전송할 수 있습니다.
- req는 aligoapi 요청시 필요한 데이터값입니다.
- tokenData는 aligoapi 요청시 필요한 apikey값과, userid값을 넣어줍니다.
- req에는 token, senderkey, tpl_code, sender, receiver_1, subject_1, message_1가 필수입니다.
- token은 r['urlencode']로 받아올 수 있습니다.
- senderkey와 tpl_code는 알리고 사이트에서 확인하실 수 있습니다. 각각 sendkey와 템플릿 코드명을 뜻합니다.
- sender는 발신자의 번호입니다. 알리고 사이트에서 등록 후 작성해주세요.
- receiver_1, subject_1, message_1은 차례로 수신자, 메세지 제목, 메세지를 말합니다. 배열로 작성하여 2개 이상으로 넣을 수 있습니다. 대량 발송시 배열로 작성해보세요.
- button_1은 알림톡에 버튼 추가시 필수로 넣어줘야하는 값입니다. 버튼이 필요하지 않다면 넣지 않아도 됩니다.
주의해야할 점은 아래와 같습니다.
리턴값을 성공을 반환하지만 카카오 알림톡이 전송되지 않았을 경우 확인하시길 바랍니다.
메세지를 템플릿과 반드시 동일하게 작성한다.
템플릿 코드가 동일해야한다.
버튼 생성시 제목 및 링크가 동일해야한다.
'Computer Engineering > Node.js' 카테고리의 다른 글
NodeJS 정리하기 ( =이것만 사용하면 프론트/백 모두 구현 가능함) (0) | 2022.08.23 |
---|---|
[nodejs] 알리고 api로 문자 메세지 전송하기 -1 (0) | 2022.05.18 |
[nodejs] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (0) | 2022.05.13 |
[node js] env 환경변수 설정하기 (0) | 2022.04.14 |
[node js] econnrefused 127.0.0.1:3306 sql connect err 해결 (0) | 2022.04.14 |