Sending targeted push notification to Android app, which is based on Azure

I have Android app, which is working with Azure IoT hub. There are several tables on Azure, one of which stores credentials of registered users of my app. This table has one column called "userId" and records are unique here.

I also have node.js script which will be processing data in one of the tables and sending push notifications based on that data via GCM.

function sendPush(userId, pushText)
{   
    var payload = pushText;

    push.gcm.send(null, payload, {
            success: function(pushResponse) {
                console.log("Sent push:", pushResponse, payload);
                request.respond();
                },              
            error: function (pushResponse) {
                console.log("Error Sending push:", pushResponse);
                }
            });
}

I know that to make targeted push notification with Google Cloud Messaging, you have to get token with InstanceID class. But can I somehow use "userId" column record to become that token to make my push notification targeted?

Upvotes: 0

Views: 381

Answers (1)

Gary Liu
Gary Liu

Reputation: 13918

Generally speaking, you can leverage Tags param as tag identifier to push notifications to specified device. Refer to Sending push notifications with Azure Notification Hubs and Node.js for more.

And you can register with tags from your backend application, if your requirements are in the proper scenarios listed at https://msdn.microsoft.com/en-us/library/azure/dn743807.aspx

In backend nodejs application, you can try to use following code to register with tags:

var notificationHubService = azure.createNotificationHubService('<nb-name>', '<nb-keys>');
notificationHubService.createRegistrationId(function(err,registerId){
    notificationHubService.gcm.createNativeRegistration(registerId,"identifier-tags",function(err,response){
        console.log(response)
    })
})

Then you can try to use the tags in send function.

Any further concern, please feel free to let me know.

Upvotes: 1

Related Questions