node 서버에서 fcm token으로 푸시 전송 방법

세차왕·2021년 6월 25일
2

안녕하세요 세차왕 개발팀 도미닉입니다.

오늘은 노드 서버에서 fcm 을 사용하는 방법을 공유하고자 합니다.

우선 iOS와 안드로이드에서 fcm token을 생성해서 DB에 저장이 되어있어야 합니다.

그 부분의 설명은 생략하도록 하겠습니다.

이제 member 별로 저장되어있는 fcm token을 이용해서 고객에게 푸시를 보내는 방법을 설명하겠습니다.

  1. 노드 서버에 아래 명령어로 firebase-admin 을 설치합니다.

npm install firebase-admin --save

  1. fcm 키 파일을 생성해서 받습니다.

프로젝트의 톱니바퀴 버튼을 눌러 <프로젝트 설정> 을 들어갑니다.

<서비스 계정> 을 들어가서 Node.js 를 선택합니다.

아래에 <새 비공개 키 생성>을 클릭해서 키 파일을 다운로드 받습니다.

const admin = require('firebase-admin');
const serviceAccount = require('./받은 키파일.json');
const fcm_admin = admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://planar-beach-791.firebaseio.com"
});

const registrationToken = 'd1qVdJv6zzk:APA91bGks-3ldvnjja3CSxmQik8nblTzGjReN_JBuaxsV4toJkMwXWFbUBpc-W_WfJOIM3sRyN_n2g3XDy75D96QSX8fcp16DLqUHgo4pnP8i7LyF_WQox26omIwaRLpB2Oep31z1LOH';
const message = {
    notification: {
        title: '시범 데이터 발송',
        body: '클라우드 메시지 전송이 잘 되는지 확인하기 위한, 메시지 입니다.'
    },
    token: registrationToken
};

// Send a message to the device corresponding to the provided
// registration token.
fcm_admin.messaging().send(message)
    .then((response) => {
         // Response is a message ID string.
         console.log('Successfully sent message:', response);
    })
    .catch((error) => {
         console.log('Error sending message:', error);
    });

위와 같이 원하는 registrationToken 에 fcm 토큰을 넣고 전송하면 정상적으로 푸시가 전송이 됩니다.

참고 :
https://nicgoon.tistory.com/196
https://firebase.google.com/docs/cloud-messaging/send-message#node.js
https://firebase.google.com/docs/admin/setup

profile
세차왕 기술블로그입니다.

0개의 댓글