Как зарегистрировать устройства в Azure Notification Hub со стороны сервера (с NodeJS sdk)?
Я разрабатываю приложение для Windows Phone 8.1 (RT) и пытаюсь отправить уведомление с помощью Azure Notification Hub. Я могу сделать это с доступным SDK на стороне клиента. Но я хочу сделать регистрацию устройства, пометки и т. Д. Со стороны сервера. Я вижу хорошее руководство по.Net backend на http://blogs.msdn.com/b/azuremobile/archive/2014/04/08/push-notifications-using-notification-hub-and-net-backend.aspx. Я использую NodeJS на стороне внутреннего сервера. Может ли кто-нибудь помочь мне в том же, с примером кода или около того.
- Я хочу зарегистрировать устройства со стороны сервера (iPhone, Android и Windows Phone), на самом деле у меня есть токены устройства, доступные со стороны обслуживающего устройства, которые отправляются с устройства через вызов API.
- Я хочу обновить несколько тегов для каждого устройства время от времени.
- Я хочу отменить регистрацию устройств, когда пользователь запросит это сделать.
- Я хочу отправить push-уведомление на определенные теги, используя шаблон.
2 ответа
Шаги для регистрации токена устройства и отправки уведомления с использованием концентратора уведомлений в файле node.js:
- Создать регистрационный идентификатор
- Создать регистрацию
- Отправить уведомление
Это код на стороне сервера после получения токена устройства. Обратите внимание, что идентификатор регистрации, маркер устройства, тег и функция обратного вызова являются обязательными параметрами для вызова уведомлений ubService.apns.send.
Вот фрагмент кода:
var azure = require('azure');
var notificationHubService = azure.createNotificationHubService('<Hub Name>','<Connection String>');
var payload={
alert: 'Hello!'
};
notificationHubService.createRegistrationId(function(error, registrationId, response){
if(!error){
console.log(response);
console.log(registrationId);
//RegistrationDescription registration = null;
//registration.RegistrationId = registrationId;
//registration.DeviceToken = req.body.token;
notificationHubService.apns.createOrUpdateNativeRegistration(registrationId, req.body.token, req.token.upn, function(error, response){
if(!error){
console.log('Inside : createOrUpdateNativeRegistration' + response);
notificationHubService.apns.send(null, payload, function(error){
if(!error){
// notification sent
console.log('Success: Inside the notification send call to Hub.');
}
});
}
else{
console.log('Error in registering the device with Hub' + error);
}
});
}
else{
console.log('Error in generating the registration Id' + error);
}
});
Посмотрите на SDK с открытым исходным кодом на стороне сервера. Я никогда не пробовал, но все должно быть в порядке, потому что любой SDK - это просто оболочка для REST API.