Home

Awesome

IBM Cloud Mobile Services - Push Notifications server-side SDK for NodeJs

Build Status Build Status Codacy Badge Coverage Status

The IBM Cloud Push Notifications service provides a unified push service to send real-time notifications to mobile and web applications. The Node.js SDK is used for sending push notifications through the IBM Cloud Push Notifications service.

Ensure that you go through IBM Cloud Push Notifications service documentation before you start.

Contents

Prerequisites

Installation

npm install ibm-push-notifications --save

Initialize SDK

Initialize PushNotifications with details about your IBM Cloud Push Notifications service.

Note: If you are using the APIKEY for Initialisation kindly call getAuthToken() , bofre sending any notification. This will add an Authorization header for the request.

The first parameter in the initializer is the IBM Cloud region where the Push Notifications service is hosted. The four options are :

Simple Notification

Create the push notification that you want to broadcast by supplying the alert message you want to be displayed. An optional URL may be supplied with the alert.

	var message = PushMessageBuilder.Message.alert("20% Off for you")
	.url("www.ibm.com").build();
	var notificationExample =  Notification.message(message).build();

Notification options

You can specify which devices, users, platforms, tag-subscriptions the notification should be sent to and customize the alert they receive.

  1. Create the target. You can either set deviceIds or userIds or platforms or tagNames.

    The following code snippet uses platforms, same way you can do it for deviceIds(...) or userIds(...) or tagNames(...).

    var target = PushMessageBuilder.Target.platforms(
        [Notification.Platform.Apple, Notification.Platform.Google,
        Notification.Platform.WebChrome,Notification.Platform.WebFirefox,
        	Notification.Platform.WebSafari,Notification.Platform.AppExtChrome]).build();
    
  2. Create the message as listed:

    var message = PushMessageBuilder.Message.alert("20% Off Offer for you")
    .url("www.ibm.com").build();
    

    Functionality added for FirefoxWeb, ChromeWeb, SafariWeb, ChromeAppExtension and extra optional settings introduced for Apns and FCM.

  3. Set all the optional settings for platforms (APNs, FCM, Safari etc).

  1. Create settings with all platforms optional settings.

    var settings = PushMessageBuilder.Settings.apns(apns).fcm(fcm).safariWeb(safariWeb)
        .firefoxWeb(firefoxWeb).chromeAppExt(chromeAppExt).chromeWeb(chromeWeb).build();       
    
  2. Create final notification using target, settings, and message.

    var notificationExample = Notification.message(message)
        .target(target).settings(settings).build();
    
  3. Send the Push notification.

    myPushNotifications.send(notificationExample, function(error, response, body) {
        console.log("Error: " + error);
        console.log("Response: " + JSON.stringify(response));
        console.log("Body: " + body);
    });
    

Send bulk Push Notifications

To send bulk push notifications do the following,

myPushNotifications.sendbulk([notificationExample,notificationExample1,notificationExample2], function(error, response, body) {
	    console.log("Error: " + error);
	    console.log("Response: " + JSON.stringify(response));
	    console.log("Body: " + body);
	});

Samples and videos

Learning more

Connect with IBM Cloud

Twitter | YouTube | Blog | Facebook |

======================= Copyright 2020-21 IBM Corp.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.