所以我在Azure上尝试通知中心。
我根据this blog post进行了设置。 我在Android代码中完成了GCM设置,因此我有一个有效的regId:
String connectionString = "Endpoint=sb://<MYNAMESPACE>.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=<MYKEY>";
hub = new NotificationHub("<MYHUB>", connectionString, this);
hub.register(regid, "myTag");
所以我得到了:
com.microsoft.windowsazure.messaging.NotificationHubUnauthorizedException: 未经授权的
在hub.register方法调用上。
有什么想法吗?
答案 0 :(得分:1)
不幸的是,管理门户中存在一个破坏NH授权规则的错误。它很快就会得到解决。在此期间,您可以使用以下代码从Console App和Service Bus preview dll创建新的NH:
NamespaceManager mgr = NamespaceManager.CreateFromConnectionString("<connection string from your namespace>");
var hub = new NotificationHubDescription("myhub");
hub.GcmCredential = new GcmCredential("<your Google API Key>");
mgr.CreateNotificationHub(hub);
确保以下列方式使用从门户网站检索的连接字符串: 1)单击左窗格中的“服务总线” 2)在右窗格中,选择您的命名空间,然后单击“连接信息” 3)复制RootAccess的连接字符串,如下所示:
很抱歉给您带来不便。
答案 1 :(得分:1)
此问题现已解决。使用管理门户管理通知中心。如果Notification Hub上没有授权规则,则在门户中添加规则并复制相应的连接字符串以用于Notification Hub android API。
答案 2 :(得分:0)
此问题的另一个根本原因是系统日期时间。
未设置正确时区的您会收到此异常。