请举例说明,因为我收到错误:400 - 指定的资源描述无效。
基本上,我想更新徽章值。但是 WnsService API 文档 ( http://azure.github.io/azure-sdk-for-node/azure-sb/latest/WnsService.html ) 中没有徽章注册模板。所以,我正在尝试使用“createRawTemplateRegistration”模板来更新徽章值。请帮助我。
请举例说明,因为我收到错误:400 - 指定的资源描述无效。
基本上,我想更新徽章值。但是 WnsService API 文档 ( http://azure.github.io/azure-sdk-for-node/azure-sb/latest/WnsService.html ) 中没有徽章注册模板。所以,我正在尝试使用“createRawTemplateRegistration”模板来更新徽章值。请帮助我。
您可以直接使用该功能sendBadge()
将徽章值推送到客户端设备。
请尝试以下代码:
var azure = require('azure');
var notificationHubService = azure.createNotificationHubService('<hubname>', '<connectionstring>');
notificationHubService.wns.sendBadge(null,99,function(error,response){
if(error) console.log(error);
console.log(response);
})
如有任何进一步的疑虑,请随时告诉我。
您的意思是您只需要一个模板并处理所有类型的通知,包括 Raw、Toast、Badge?如果是这样,我认为答案是否定的。根据描述http://azure.github.io/azure-sdk-for-node/azure-sb/latest/WnsService.html#createRawTemplateRegistration:
请记住,您必须指定 X-WNS-Type 标头
所以 header 选项是必需的。根据nodejs中通过这个api调用的REST API是Create Registration,我们可以找到描述:
BodyTemplate 元素是必需的,X-WNS-Type 标头也是如此。
所以我们应该为模板指定通知类型。
此代码示例在我这边运行良好:
var channel = '<devicetoken>';
var templateMessage = { text1: '$(message)' };
notificationHubService.wns.createRawTemplateRegistration(channel,'tag',JSON.stringify(templateMessage), {headers: { 'X-WNS-Type': 'wns/raw' }},
function (e, r) {
if (e) {
console.log(e);
} else {
console.log({
id: r.RegistrationId,
deviceToken: r.DeviceToken,
expires: r.ExpirationTime
});
}
}
)