NodeJs

2016-04-11 39 views
1

içinde android push bildirimi ile Json nesnesi nasıl gönderilir Itme bildirimi göndermek için aşağıdaki kodu kullanıyorum ve ileti normal bir dize olarak çalışıyor, JSON içine iletiyi eklerseniz, bu işe yaramaz?NodeJs

var GCM = require('gcm').GCM; 
var gcm = new GCM('MyApi'); 

var message = { 
    registration_id: ['x'], 
    collapse_key: 'New shop created - duty paid shop', // normal string is working 
    // collapse_key: {'message':'new shop created','shopname':'shopname'}, this JSON dosen't works ? 
    priority: 'high', 
    contentAvailable: true, 
    delayWhileIdle: true, 
    timeToLive: 3, 
}; 

gcm.send(message, function(err, messageId){ 
    if (err) { 
     console.log(err); 
    } else { 
     console.log("Sent with message ID: ", messageId); 
    } 
}); 

hatası "Eksik collapse_key'e"

cevap

4

gibidir JSON kullanırken bu deneyin:

var GCM = require('gcm').GCM; 
var gcm = new GCM('MyApi'); 

var message = { 
registration_id: ['x'], 
//collapse_key: 'New shop created - duty paid shop', // normal string is working 
collapse_key: '{\'message\':\'new shop created\',\'shopname\':\'shopname\'}', 
priority: 'high', 
contentAvailable: true, 
delayWhileIdle: true, 
timeToLive: 3, 
}; 

gcm.send(message, function(err, messageId){ 
if (err) { 
    console.log(err); 
} else { 
    console.log("Sent with message ID: ", messageId); 
} 
}); 
3

collapse_key sadece bir dize

kontrol json değil olabilir Dokümantasyon burada https://developers.google.com/cloud-messaging/http-server-ref#downstream-http-messages-json

Sence "düğüm-gsm" modülü ile json veri gönderebilirsiniz

var GCM = require('gcm').GCM; 
var gcm = new GCM('MyApi'); 

var message = { 
    registration_id: ['x'], 
    collapse_key: 'New shop created - duty paid shop', 
    priority: 'high', 
    notification: {title: "hello", message: "hello world"}, // for recieving notification on app side plus you need write separate notification handling function on app //A 
    contentAvailable: true, 
    delayWhileIdle: true, 
    timeToLive: 3, 
    data: {'message':'new shop created','shopname':'shopname'} 
}; 

gcm.send(message, function(err, messageId){ 
    if (err) { 
     console.log(err); 
    } else { 
     console.log("Sent with message ID: ", messageId); 
    } 
}); 
+0

evet puanınızı kesinlikle doğru olduğunu, ancak eğer ı veriyi JSON olarak gönderiyor, alırken boş mu? – karthik

+0

Uygulamada bildirimi almak için mesaj içinde bildirim anahtarı eklemeniz gerekir –

0

olarak veri (payload) içinde json gönderebilir

var gcm  = require('node-gcm'); 
var apiKey = 'ApiKey'; 

var message = new gcm.Message({ 
     collapseKey: 'demo', 
     priority: 'normal', 
     contentAvailable: true, 
     delayWhileIdle: true, 
     timeToLive: 3, 
     data:{"message":"New Shop Created","shopName":"XYZ"} 
    }); 

    var sender = new gcm.Sender(apiKey); 

    sender.send(message, { registrationTokens: 'id'}, function (err, response) { 

     if (err){ 
      console.error(err); 
     } else { 
      console.log(response); 
     } 
    });