node-gcm服务器收到错误:MismatchSenderId

时间:2015-03-20 09:17:33

标签: node.js

我的项目有些问题,希望你能帮助我!

说明:

我使用https://github.com/ToothlessGear/node-gcm中的库为某些设备构建服务器推送通知。

我已将Google Cloud Message中的API密钥配置为SenderId。

我的代码:

var message2 = new gcm.Message();

**// ... or some given values
var message2 = new gcm.Message({
    collapseKey: 'demo',
    delayWhileIdle: true,
    timeToLive: 3,
    data: {
        key1: 'message1',
        key2: 'message2'
    }
});

// Change the message data
// ... as key-value
message2.addData('key1','message1');
message2.addData('key2','message2');

// ... or as a data object (overwrites previous data object)
message2.addData({
    key1: 'message1',
    key2: 'message2'
});

// Change the message variables
message2.collapseKey = 'demo';
message2.delayWhileIdle = true;
message2.timeToLive = 3;
message2.dryRun = true;

// Set up the sender with you API key
var sender = new gcm.Sender('AIzaSyBzb1PsEBEiAjagslkEANqyxxxxxxxxx');

// Add the registration IDs of the devices you want to send to
var registrationIds = [];
registrationIds.push('APA91bHAbFJYpHsSN-uz1Hkh8XjBw4xU87VIz5hZYOtobVv6I2pUZM67pWUGbb5zcP2HxXrooYiIOhzhIV7TuRDbVOlRDak-.xxxxxxxxxx');

sender.send(message2, registrationIds, 4, function(err, result) {
    console.log(result);
});**

然后,我跑了并收到了消息作为照片!

enter image description here

1 个答案:

答案 0 :(得分:1)

According to the documentationMismatchSenderId表示发件人(API密钥)无权向注册ID发送通知:

  

注册ID与某组发件人绑定。当客户端应用程序注册GCM时,它必须指定允许哪些发件人发送消息。在向客户端应用程序发送消息时,您应该使用其中一个发件人ID。如果您切换到其他发件人,现有的注册ID将无效。

您应确保您的注册ID允许发件人发出通知。