我在Heroku中托管了带有node.js API后端的Ionic 3应用程序。我也想在OneSignal中使用推送通知。 到目前为止,我已经完成了安装过程和Ionic Cordova的实现。目前,我只能使用Onesignal信息中心接收通知。现在,我正在尝试使用node.js应用程序发送通知,但没有收到通知。
在我的node.js应用中,我有以下代码:
app.post('/api/push', function(req, res) {
var sendNotification = function (data) {
var headers = {
"Content-Type": "application/json; charset=utf-8",
"Authorization": "Basic xxxxxxx-my-onesignal-rest-api-key"
};
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
};
var https = require('https');
var req = https.request(options, function (res) {
res.on('data', function (data) {
console.log("Response:");
console.log(JSON.parse(data));
});
});
req.on('error', function (e) {
console.log("ERROR:");
console.log(e);
});
req.write(JSON.stringify(data));
req.end();
};
var message = { app_id:“ xxxx-my-app-id”, 内容:{“ en”:“示例消息”}, included_segments:[“全部”] };
sendNotification(message); });
在Heroku应用程序日志中的POST请求之后,我可以看到以下内容:
heroku[router]: at=info method=OPTIONS path="/api/push" host=xxxxxx.herokuapp.com request_id=xxxxx-xxx-xxxx fwd="xxx.xx.xx.xx" dyno=web.1 connect=0ms service=10ms status=200 bytes=215 protocol=https
因此,我可以看到POST请求成功,但仍无法在设备上收到通知。