Create send notification API using nodejs without FCM and GCM npm package.We can send notification using Http npm package in the nodejs.

Create a new Directory, we can run the following command: 

mkdir <directoryname>

then move into the newly created directory:

cd <directoryname>

then  run this command : 

npm init

and fill this information like that :

package name: (directoryname)
version: (1.0.0)
description:
entry point: (index.js) server.js
test command:
git repository:
keywords:
author:
license: (ISC)
{"name": "curlapi",  "version": "1.0.0","description": "", "main": "server.js","scripts": { "test": "echo \"Error: no test specified\" && exit 1" },  "author": "",  "license": "ISC"}Is this ok? (yes) yes then enter

After creating project install node package run command:

npm install --save express morgan body-parser method-override multer http

create the server.js file and add this code :

var express     = require('express');
var app         = express();
var bodyParser  = require('body-parser');
var morgan      = require('morgan');
var multer  =   require('multer');
var methodOverride = require('method-override');
var http = require('http');
// =======================
// configuration =========
// =======================
var port = process.env.PORT || 8258;
app.use(express.static(__dirname + '/public'));
app.use('/public/uploads',express.static(__dirname + '/public/uploads'));
app.use(bodyParser.urlencoded({'extended':'true'}));            // parse application/x-www-form-urlencoded
app.use(bodyParser.json());                                     // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(methodOverride());
app.use(function(req, res, next) { //allow cross origin requests
    res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, DELETE, GET");
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});
// Send Push Notification
app.post('/sendpush', function(req, res) {
    var registration_ids = [];
    registration_ids.push('Enter Device TokenID');
    var data = {
      "collapseKey":"applice",
      "delayWhileIdle":true,
      "timeToLive":3,
      "data":{
        "message": "Sent Notification","title":"Push Notification"
        },
      "registration_ids":registration_ids
    };
    var dataString =  JSON.stringify(data);
    var headers = {
      'Authorization' : 'key=<Enter Firebase and google server Key/Legacy server key >',
      'Content-Type' : 'application/json',
      'Content-Length' : dataString.length
    };
    var options = {
      host: 'android.googleapis.com',
      port: 80,
      path: '/gcm/send',
      method: 'POST',
      headers: headers
    };
    //Setup the request
    var req = http.request(options, function(res) {
      res.setEncoding('utf-8');
      var responseString = '';
      res.on('data', function(data) {
        responseString += data;
      });
      res.on('end', function() {
        var resultObject = JSON.parse(responseString);
      });
      console.log('STATUS: ' + res.statusCode);
      console.log('HEADERS: ' + JSON.stringify(res.headers));
    });
    req.on('error', function(e) {
      console.log('error : ' + e.message + e.code);
    });
    req.write(dataString);
    req.end();
    res.send();
});
// =======================
// start the server ======
// =======================
app.listen(port);
console.log('Running at ' + port);

 

https://github.com/Sudarshan101/nodejsPushnotificationApi

About the author
Code solution

info@codesolution.co.in

Discussion
  • 0 comments

Add comment To Login
Add comment