1

Я попытался отправить сообщение на одно устройство, то есть на один идентификатор регистрации, и он работал нормально, но при попытке добавить несколько идентификаторов регистрации он выдал ошибку «InvalidServerResponse». , например. Работает для regTokens = 'regId1'; Но не работает для regTokens = ['regId1', 'regId2'];Как отправить сообщение нескольким устройствам Android с использованием FCM в узле js?

var FCM = require('fcm-node'); 
 
// Add API Key 
 
var fcm = new FCM('<server-key>'); 
 

 
exports.sendMessage = function (regTokens, messageToSend, callback) { 
 
    var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera) 
 
     to: regTokens, 
 

 
     data: { 
 
     ar_message: messageToSend 
 
     } 
 
    }; 
 

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

+0

Он работает как с регистрационными удостоверениями, если отправляется индивидуально. Но не работает для массива. – Abhilasha

+1

Убедитесь, что [код является автономным] (http://stackoverflow.com/help/mcve). Прямо сейчас мы понятия не имеем, что такое 'regTokens', и это, вероятно, очень важно для того, почему он терпит неудачу. –

ответ

4

Update: Для v1, кажется, что registration_ids больше не поддерживается. Настоятельно рекомендуется использовать темы.


При отправке указанных нескольких регистрационных маркеров, вы должны использовать registration_ids вместо to. Из документов (выделено мной):

Этот параметр указывает получателя сообщения многоадресной рассылки, сообщения, отправленного на более чем один регистрационный токен.

Значение должно быть массивом регистрационных токенов, на которые необходимо отправить сообщение групповой рассылки. Массив должен содержать не менее 1 и не более 1000 регистрационных токенов. Чтобы отправить сообщение на одно устройство, используйте параметр to.

Сообщения многоадресной рассылки разрешены только с использованием формата HTTP JSON.

var message = { 
    registration_ids: regTokens, 

    data: { 
     ar_message: messageToSend 
    } 
    }; 
+0

Это сработало .... Спасибо .. – Abhilasha

+0

@Abhilasha Примите это как правильный ответ, чтобы ваш пост был правильно помечен. Ура! :) –

+0

Done ..! благодаря :) – Abhilasha