Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点gcm:为所有设备发送推送通知_Node.js_Push Notification_Ionic2 - Fatal编程技术网

Node.js 节点gcm:为所有设备发送推送通知

Node.js 节点gcm:为所有设备发送推送通知,node.js,push-notification,ionic2,Node.js,Push Notification,Ionic2,我正在尝试使用node.js构建PushNotification服务器, 我使用了“节点fcm”,但它不适用于我,所以我尝试使用“节点gcm”,但我面临同样的问题,我不知道如何为所有用户发送通知?我需要在字段(to:)中写些什么 这是我的代码: var gcm = require('node-gcm'); var Sender_ID = '55*****'; var API_KEY = 'my server key'; var sender = new gcm.Sender(API_KEY,{'

我正在尝试使用node.js构建PushNotification服务器, 我使用了“节点fcm”,但它不适用于我,所以我尝试使用“节点gcm”,但我面临同样的问题,我不知道如何为所有用户发送通知?我需要在字段(to:)中写些什么

这是我的代码:

var gcm = require('node-gcm');
var Sender_ID = '55*****';
var API_KEY = 'my server key';
var sender = new gcm.Sender(API_KEY,{'proxy':'http://username:password@my_proxyinternet.com:8080' , timeout: 5000});
var message = new gcm.Message({
    notification: {
        title: "Hello, World",
        icon: "ic_launcher",
        body: "This is a notification that will be displayed."
    }
});

var registrationTokens = [];
registrationTokens.push(['All']); 
sender.send(message, { registrationTokens: 'All' }, function (err, response) {
    if (err) console.error(err + '  ERROR');
    else console.log(response + '  ELSE');
});
结果是:

{多播_id:-1,成功:0,失败:1,规范_id:0,结果:[{错误:'InvalidRegistration'}]}错误:收件人密钥'registrationTokens'作为不正确的类型提供。错误进程已完成,退出代码为0


注意:我使用Ionic 2,我可以从收到通知。

问题解决了,事实上我没有找到向所有用户发送通知的解决方案,所以我在android应用程序中使用了如下主题: 在我的ionic应用程序中,我将主题选项添加到android选项中,如:

const options: PushOptions = {
  android: {
    topics:['A123'],
    senderID: "55*********5"
  }
对于服务器,我使用了这个

最后,我将以下代码写入index.js文件:

var-gcm=require('./lib/node-gcm');
var message=新的gcm.message();
message.addNotification({
标题:“警惕!!!”,
正文:“异常数据访问”,
图标:“可绘制hdpi图标”,
图像:'可绘制hdpi图标',
警告:“正确”,
声音:“真的”
});
//在此处添加您的移动设备注册令牌
重试次数=4;
var regTokens='AAAAgXm-v**:*********************************************************************************************************************************EaH';
var sender=new gcm.sender(regTokens,{'proxy':'http://Username:Password@my_proxy.com:8080',超时:5000});
send(消息,{topic:“/topics/A123”},重试计数,函数(err,response){
如果(错误){
控制台错误(err);
}否则{
控制台日志(响应);
}

});,如果要使用FCM-PUSH;这是一个真实的例子:

var FCM=require('FCM-push')
var服务器&u API='AAA***************************************************jEaH'//把你的api密钥放在这里
var fcm=新fcm(服务器API)
var消息={
致:“/topics/A123”,
//折叠键:“55”,
优先级:“高”,
可用内容:正确,
通知:{
标题:“推送通知的标题”,
正文:“推送通知的正文”
},
数据:{//您只能发送通知或数据(或同时发送)
我的钥匙:“我的价值”,
我的另一个键:“我的另一个值”
}
}
fcm.send(消息、功能(错误、响应){
如果(错误){
log(“出现了问题!”)
}否则{
日志(“已成功发送,响应:”,响应)
}
})