POST-сообщение в Firebase Cloud Messaging через NodeJS - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь реализовать простой узел js, используя этот пакет

https://www.npmjs.com/package/fcm-node

, чтобы сделать 1 простое push-сообщение для моего Firebase CM, чтобы он мог инициировать push-уведомление дляiPhone

Я уже сделал эти шаги ниже, не уверен, почему он все еще НЕ работает:

console.log("START");

var FCM = require('fcm-node')

var serverKey = require('/Users/john/Desktop/Apps/APNS/node/mhn-app-firebase-adminsdk-bs45c-5ac3770488.json') 

var fcm = new FCM(serverKey)

var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera)
    to: '##########',
    collapse_key: 'green',

    notification: {
        title: 'Title of your push notification',
        body: 'Body of your push notification'
    },

    data: {  //you can send only notification or only data(or include both)
        cpeMac: '000000000000',
        type: 'malware'
    }
}

fcm.send(message, function(err, response){
    if (err) {
        console.log("Something has gone wrong!")

        console.log(err);

    } else {
        console.log("Successfully sent with response: ", response)
    }
})

console.log("END");

Результат

Я продолжал падать в

console.log(err);

с этими сообщениями

⚡️  node  node app.js 
START
END
Something has gone wrong!
{ Error: Messaging payload contains an invalid "collapse_key" property. Valid properties are "data" and "notification".
    at FirebaseMessagingError.FirebaseError [as constructor] (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/utils/error.js:25:28)
    at new FirebaseMessagingError (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/utils/error.js:130:23)
    at /Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:465:23
    at Array.forEach (<anonymous>)
    at Messaging.validateMessagingPayload (/Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:462:21)
    at /Users/john/Desktop/Apps/APNS/node/node_modules/fcm-node/node_modules/firebase-admin/lib/messaging/messaging.js:204:37
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
    at Function.Module.runMain (module.js:686:11)
    at startup (bootstrap_node.js:187:16)
  errorInfo: 
   { code: 'messaging/invalid-payload',
     message: 'Messaging payload contains an invalid "collapse_key" property. Valid properties are "data" and "notification".' } }

Я не знаю, что поставить как collapse_key.Как мне найти его в моей учетной записи Firebase?

1 Ответ

0 голосов
/ 29 ноября 2018

Вам нужен collapse_key: "new_message" и уведомление: {tag: "new_message"}

console.log("START");
var FCM = require('fcm-node');
var serverKey = require('secretKeyJson_path')
var fcm = new FCM(serverKey)
var collapseKey = 'new_message';
var message = {
    to: 'client_app_token',
    data: {
           cpeMac: '000000000000',
        type: 'malware' 
    },
    notification: {
        title: 'Hello motherfucker',
        body: 'Nice body',
        tag: collapseKey,
        icon: 'ic_notification',
        color: '#18d821',
        sound: 'default',
    },
};


fcm.send(message, function(err, response){
    if (err) {
        console.log("Something has gone wrong!")

        console.log(err);

    } else {
        console.log("Successfully sent with response: ", response)
    }
})

console.log("END");

только для вашего контекста, collapse_key предназначен для работы, когда устройство находится в автономном режиме и когда восстанавливает подключение к Интернетуон доставит только последнее уведомление, полученное в автономном режиме.

...