Node.js로 FCM 발송 기능 구현하기

Nodejs용 모듈인 “fcm-node” 모듈을 활용하면 NodeJS를 기반으로 한 FCM 발송 서버를 간단하게 구현할 수 있습니다.

 

FCM 클라이언트 준비

FCM 클라이언트에 관련된 내용은 다음의 포스팅을 참고하시기 바랍니다.

Cordova FCM 클라이언트 구현하기 (푸시메시지)

 

FCM 발송을 위한 서비키 발급받기

FCM 클라이언트를 준비하는 과정에서 Firebase 사이트에 등록해 둔 프로젝트를 통해 “서비키”를 발급받을 수 있습니다. 프로젝트 개요에서 추가한 플랫폼에 대한 “설정” 화면으로 이동합니다.

 

상단 탭에서 “클라우드 메시징”을 선택하면 화면 중앙에 “서버키”가 표시됩니다. 이 값을 복사해 둡니다.

 

 

Node.js 모듈 설치하기

Node 프로젝트가 진행되고 있는 디렉토리에서 다음의 명령어를 사용해서 “fcm-node” 모듈을 설치합니다.

npm install fcm-node –save

 

모듈 API 확인하기

푸시메시지 발송을 위해서 구성할 데이터는 기본적으로 다음과 같습니다. to라는 키에 Android 단말이 발급받은 token값만 지정한다면 그 밖의 항목들은 개발자가 편의에 따라 key와 value를 지정하면 됩니다.

 

만약 클라이언트가 cordova-plugin-fcm을 사용하여 구현되었다면 Push 메시지가 발송해야 할 메시지 규격은 다음과 같이 플러그인이 수신하기 위한 형식을 갖추어야 합니다.

 

이렇게 준비된 데이터를 다음과 같이 처리하여 발송할 수 있습니다.

 

전체 소스코드 확인

다음과 같이 전체 소스코드를 구성하였습니다.

 

Node.js에서는 발송에 성공하면 아래와 같이 콘솔을 통해서 메시지만 표시됩니다.

 

클라이언트가 구현된 안드로이드 단말에서는 푸시 서버에서 발송한 num1, num2 값을 전달받아 다음과 같이 메시지 박스를 표시하도록 구성하였습니다. (자세한 내용은 이 글의 처음에서 연결한 포스팅을 참고하시기 바랍니다.)

 

이 이후 각 서비스에 맞게 추가해야 할 부분들.

  • Android App이 실행되었을 때 자체적으로 구축한 서버에 Token값을 전송하여 회원정보와 함께 저장해야 합니다.
  • 특정 회원에서 Push를 발송해야 할 이슈가 생긴 경우 회원에게 설정된 Token값과 발송할 정보를 구성하여 fcm-node 모듈을 통해 발송합니다.
  • 만약 특정 이벤트가 자동으로 발생되어야 한다면 Node에서 스케쥴러를 구현하여 일정 시간마다 Push를 수신할 조건이 충족되는 대상을 DB에서 조회하여 가져와야 합니다.

1 thought on “Node.js로 FCM 발송 기능 구현하기

  1. hong

    안녕하세요. 다름이 아니라 예제를 구현 하던중 질문이 생겨 댓글 남기게 되었습니다.
    node server.js 명령어를 입력했을 경우에
    “Push 메시지가 발송되었습니다.{~}”이 부분이 2번이 출력이 되는데 혹시 이유를 알 수 있을까요 ㅠㅠ
    token값의 경우 제가 임의로 만든 앱에서 발급 받은 token을 넣어주었고, 나머지 코드는 예제와 동일합니다.

댓글 남기기