NotificationHub Push Notification 返回:从 Token Provider 获取的 Token 错误
Posted
技术标签:
【中文标题】NotificationHub Push Notification 返回:从 Token Provider 获取的 Token 错误【英文标题】:NotificationHub Push Notification returns : The Token obtained from the Token Provider is wrong 【发布时间】:2016-08-28 22:10:37 【问题描述】:我有 Wp8.1 Silverlight 应用程序,它从 Mobileservice(旧的 azure 服务)接收推送通知 (WNS)。
因此,由于有新功能,我想更新到新服务。我现在已经创建/升级了一个新服务器以使用应用服务 - 移动应用。并使用来自 azure 的示例应用程序测试了推送通知(一切正常)。
回到我的应用程序 WP8.1 -> 通过 NuGet (2.0.1) 添加新包 Microsoft.Azure.Mobile.Client
,存在 Microsoft.WindowsAzure.Mobile.Ext 不包含“GetPush”扩展名的问题。好像少了它?看WP8版本,它只注册到MPNS,我需要WNS。所以我不知道是否可以使用任何其他组件。
我可以添加另一个程序集引用吗?
更新
下面的代码让我在服务器上注册设备,我可以看到设备注册正确。其中channelUri
和installationInformation
由客户端检索并发送到服务器。
Installation ins = new Installation();
ins.Platform = NotificationPlatform.Wns;
ins.PushChannel = uTagAndChan.ChannelUri;
ins.Tags = uTagAndChan.Tags;
ins.InstallationId = uTagAndChan.installationInformation;
await hubClient.CreateOrUpdateInstallationAsync(ins);
向已注册的标签发送测试 toast-notification,导致以下错误:
从Token Provider获取的Token错误
搜索这个问题我找到了Windows Store App Push Notifications via Azure Service Bus。建议的解决方案说直接从应用程序注册到通知中心,我宁愿没有应用程序直接访问中心。但这是唯一的方法吗? (请注意,答案未被接受,但我会尝试一切,尽管这不是理想的解决方案)
更新
通过客户端(WP8.1 Silverligt)注册通知,向 MPNS 注册,这是我不想要的。
服务器上的sn-p注册了一个WNS,两个注册可以看这里:
使用
完成 URI 检索var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
在描述中指出它返回一个 WNS。这似乎推断我在服务器上进行的注册(顶部的代码 sn-p)是正确的,而客户端上的注册是错误的。
但是图像上的注册似乎是错误的。两个注册的PNS Identifier
不应该不同吗? expiration date
也似乎错了?
由于 NuGet 包中不存在 GetPush()
(在示例中为客户端正确注册通知),如何解决此问题?
更新
我读过一个地方,删除并重新创建 NotificationHub
可能会有所帮助。我今天会试试这个。即使它有效,也更希望有解决方案,并知道注册是否正确完成?
临时解决方案:
删除、重新创建、插入包 SID 和秘密。它再次起作用(奇怪)!
仍然对潜在问题感兴趣!
【问题讨论】:
现在有点难以弄清楚,但我怀疑秘密是错误的。 PNS 标识符与设备+应用程序注册相关联,而不是与用户相关联,因此它是有意义的。 @JTIM 你的问题解决了吗? @AlexBelotserkovskiy 我可以发送通知,是的,但我不知道问题出在哪里。删除并重新创建了服务,这有帮助吗? 我认为 Adrian 可能会发表评论,至于我,这似乎是不应该再次发生的间歇性问题。很高兴它得到了解决。 【参考方案1】:删除并重新创建服务,设置所有相同的设置使其再次工作。
【讨论】:
【参考方案2】:我的 UWP 也有同样的问题。但就我而言,我遇到了自签名证书的问题。
当我将 AppxPackageSigningEnabled
属性设置为 True
(在 .csproj
中)时,通知停止工作,并且我收到“从令牌提供程序获得的令牌错误”(从 Azure 门户发送测试)。
证书必须与.appxmanifest
文件中Identity
元素中的Publisher
具有相同的颁发者。
【讨论】:
以上是关于NotificationHub Push Notification 返回:从 Token Provider 获取的 Token 错误的主要内容,如果未能解决你的问题,请参考以下文章
NotificationHub 在注册标签 UWP 中发送通知
Azure NotificationHub - 检测失败的通知
Azure NotificationHub 发送推送时凭据无效
适用于桌面应用程序的 Azure NotificationHub(控制台应用程序)