Windows Azure 中的推送通知标签无效

Posted

技术标签:

【中文标题】Windows Azure 中的推送通知标签无效【英文标题】:Invalid tag for push notifications in Windows Azure 【发布时间】:2015-01-18 17:35:18 【问题描述】:

我正在构建一个 Windows Phone 8.1 应用程序并希望添加来自 Windows Azure 的推送通知。我正在使用 CreatePushNotificationChannelForApplicationAsync 创建通道,然后获取生成的 URI 并将其存储在 Azure 数据库中。尝试使用 push.wns.sendToastText01 发送推送通知时,我在 Azure 日志中收到以下错误:

脚本“/table/Message.insert.js”中的错误。错误:400 - 提供了无效标签“https://db3.notify.windows.com/?token=AwYAAAC3tTi3W5ItZ0hWdZ3FLmELt%2flHcwpsM...”。有效的标记字符是字母数字、_、@、-、.、: 和 #。

我注意到频道 URI 包含没有出现在有效字符中的“%”,但这是在客户端应用程序中生成的 URI。我是否使用了错误的方法来发送推送通知,或者我还遗漏了什么?

编辑:我在 Azure 中使用 Node.js 作为后端。

request.execute(
                          success: function() 
                                push.wns.sendToastText01(channelUri, 
                                    text1: "Google Plus Friend Tracker",
                                    text2: item.content,
                                    param: '/ChatPage.xaml?friendGoogleId=' + item.author_id
                                )
                            
                        );

【问题讨论】:

你能说得更具体点吗?你在使用 JS 后端吗?能提供一些sn-ps的代码吗? 感谢您的回复,我已经更新了我的问题。 【参考方案1】:

查看wns object documentation,第一个参数将是您要发送到的标签。由于您在上面的代码中提供了一个频道,因此您会收到指定的错误。

后端不需要提供通道 URI,因为它通过客户端注册操作与通知中心相关联。如果您正在广播消息,则只需提供 null 作为标记值。否则,您可以使用注册频道 URI 时指定的标签。

有关该过程的更多信息,请参阅"Get started with push" 教程。 "Send push notifications to authenticated users" 教程中还有一个使用标签(用户 ID)的示例。有关标签的更多信息,Notification Hubs breaking news tutorial 也不错。

【讨论】:

以上是关于Windows Azure 中的推送通知标签无效的主要内容,如果未能解决你的问题,请参考以下文章

windows azure 通知中心标签

使用 Windows Azure 在 Android 上推送通知

Azure 通知中心推送通知失败或传递无效或不完整的数据

Azure NotificationHub 发送推送时凭据无效

使用 Azure 将通知从 ASP.Net 页面推送到不同平台

Azure 移动服务(推送通知)