마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

node (fcm-push)에서 fcm 푸시 질문

0 추천

안녕하세요.

게시판에서 새 글이 올라오면 앱으로 푸쉬를 주는 걸 만들려고하는 초보자입니다.

파이어베이스에서 notification으로 메세지를 날리면 알람이 뜨는 것 까지는 했습니다. 

그런데 아래의 소스 예제를 실행하는데 NotAuthorizedError가 떠서 막힌 상태입니다.

 var FCM = require('fcm-push');

var serverKey = '';
var fcm = new FCM(serverKey);

var message = {
    to: 'registration_token_or_topics', // required fill with device token or topics
    collapse_key: 'your_collapse_key', 
    data: {
        your_custom_data_key: 'your_custom_data_value'
    },
    notification: {
        title: 'Title of your push notification',
        body: 'Body of your push notification'
    }
};

//callback style
fcm.send(message, function(err, response){
    if (err) {
        console.log("Something has gone wrong!");
    } else {
        console.log("Successfully sent with response: ", response);
    }
});

serverKey와 registration_token에는 아래 그림의 빨간 부분의 값을 넣어서 수행했습니다.

 

웹 api 값과 토큰 값

 

잘못된 값을 넣은건지 아니면 아직 환경 구축이 덜 된건지 알 수 있을까요?

node는 위 소스 파일만 작성해서 실행하였습니다.

hsna7024 (200 포인트) 님이 2017년 6월 28일 질문

2개의 답변

0 추천
 
채택된 답변

해결 했습니다.

serverkey는 아래 빨간 네모 위치에 값을 넣어줘야 합니다 ㅠㅠ

기기 토큰 값은 앱에서  FirebaseInstanceId.getInstance().getToken() 로 받아오시면 됩니다.

위의 예제 잘 실행 됩니다. 혹시 저 같은 초보분들 있을까봐 자답하고 갑니다.

hsna7024 (200 포인트) 님이 2017년 6월 29일 답변
+1 추천
FCM 스펙에 보면,

알림메시지 또는 데이터 메시지를 보낼 수 있게 되어 있습니다.

참조: https://firebase.google.com/docs/cloud-messaging/?hl=ko

collapse_key:는 데이터 메시지에 있는 프로토콜 규격입니다.

body는 알림메시지의 프로토콜 규격입니다.

그래서 안간 것 같네요. 두개의 용도가 다릅니다.

그외에도 Topic 구독 기반의 메시징도 있습니다.

body 대신 msg로 바꾸면 데이터 메시지로 갈겁니다.

collapse_key의 용도를 정확하게 모른다면, 지정하지 않는게 좋습니다. 중복된 데이터가 안나가도록 하기 위해서 필요한 겁니다.
Will Kim (43,170 포인트) 님이 2017년 6월 28일 답변
친절한 답변 감사합니다.
참조 자료로 관련 내용 자세히 알게 됐습니다.
그래도 아직 해결이 안됐습니다.
일단 등록 토큰은 앱에서 FirebaseInstanceId.getInstance().getToken() 사용하여
얻어냈습니다.
수정해서 실행해봤는데 아직 NotAuthorizedError가 뜨고 있네요 ㅠ
조금더 알아보겠습니다.
...