0

Я нашел способ доставки push-сообщений с моего сервера expressJS в мое ионное приложение, и я нашел GCM. С GCM я мог доставить сообщение проходящее список лексем, например:Как отправить push-уведомления на несколько устройств с использованием Firebase Cloud Messaging

sender.send(message, { 
     registrationTokens: deviceTokens 
    }, function (err, response) { 
     if (err) console.error(err); 
     else console.log('response' + JSON.stringify(response)); 
    }); 

Но, как я обнаружил, что GCM стал ТСМ Я пытался сделать то же самое с помощью ТСМ, но не повезло до сих пор , Я слышал о отправке тем, но я не мог найти пример.

Может ли кто-нибудь привести пример того, как отправлять сообщения темы с помощью FCM?

мой FCM код: (работает только с 1 знак)

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

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

var message = { 

    to: 'device-token', 

    notification: { 
     title: event.title, 
     body: event.information 
    } 

}; 

fcm.send(message, function (err, response) { 
    if (err) { 
     console.log("Something has gone wrong! \n" + err); 
    } else { 
     console.log("Successfully sent with response: \n ", JSON.stringify(response)); 
    } 
}); 

ответ

2

Я думаю, что это documented довольно хорошо Google. В принципе, есть два способа отправки уведомлений нескольких групп:

  1. Topic Messaging: У вас есть клиент подписаться на конкретные темы, а затем при отправке уведомлений вы просто изменить запрос на предназначаться определенную темой. Все клиенты, подписавшиеся на эту тему, получат сообщение.

    POST request to this end point. 
    
    https://fcm.googleapis.com/fcm/send 
    Content-Type:application/json 
    Authorization:key=SERVER_AUTHORIZATION_KEY 
    
    { 
        "to": "/topics/foo-bar", 
        "data": { 
         "message": "This is a Firebase Cloud Messaging Topic Message!" 
        } 
    } 
    

    Как вы подписываетесь на конкретную тему, зависит от контекста устройства. Документация для Android и IOS упоминается в ссылке, которую я предоставляю.

  2. Device Groups: Это в основном основано на подходе, который вы предоставили, у вас есть маркеры регистрации устройств, на которые вы хотите настроить таргетинг. Вы можете сформировать группы устройств, как так:

    POST request 
    
    https://android.googleapis.com/gcm/notification 
    Content-Type:application/json 
    Authorization:key=API_KEY 
    project_id:SENDER_ID 
    
    { 
        "operation": "create", 
        "notification_key_name": "appUser-Chris", 
        "registration_ids": ["4", "8", "15", "16", "23", "42"] 
    } 
    

Следующая запрос возвращает notification_key, который вы можете использовать в to поле для отправки уведомлений. Да, Вы должны сохранить эту notification_key где-то и использовать его просто нравится:

POST request 

https://fcm.googleapis.com/fcm/send 
Content-Type:application/json 
Authorization:key=SERVER_AUTHORIZATION_KEY 

{ 
    "to": "aUniqueKey", //This is your notification_key 
    "data": { 
    "hello": "This is a Firebase Cloud Messaging Device Group Message!", 
    } 
} 

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

+0

можно ли отправить уведомление группе групп с несколькими aUniqueKey? – ocanal

7

Я считаю, что вы используете библиотеку fcm push для вашего push-уведомления, , если вы хотите отправить одно и то же уведомление нескольким пользователям, тогда используйте параметр «registration_ids» вместо «to». этот тег принимает массив строк.

ex: registration_ids: ["registrationkey1", "registrationkey2"].

примечание: предел 100 ключей за раз.

+2

Предел, возможно, изменился с момента ответа. Сейчас 1000. https://firebase.google.com/docs/cloud-messaging/http-server-ref#table1 –

+0

спасибо, что вы спасли мое время –

+0

вы меня спасли – sam