Push-уведомление NotificationHub возвращается: токен, полученный от провайдера токенов, неверен
У меня есть приложение Wp8.1 Silverlight, которое получает push-уведомления (WNS) от Mobileservice (старой службы Azure).
Поэтому я хотел обновить до нового сервиса из-за новых функций. Теперь я создал / обновил новый сервер для использования службы приложений - мобильное приложение. И проверил push-уведомление с примером приложения от Azure (все работает).
Возвращаясь к моему приложению WP8.1 -> Добавление нового пакетаMicrosoft.Azure.Mobile.Client
через NuGet (2.0.1) существует проблема, заключающаяся в том, что 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);
Отправка тестового уведомления о тосте зарегистрированным тегам приводит к следующей ошибке:
Токен, полученный от провайдера токенов, неверен
Поиск по этому вопросу я нашелPush-уведомления приложения Магазина Windows через служебную шину Azure, То, что предлагаемое решение говорит для регистрации в центре уведомлений непосредственно из приложения, я бы предпочел, чтобы приложение не имело прямого доступа к концентратору. Но так ли это? (обратите внимание, что ответ не был принят, но я попробую все это, хотя это не желаемое решение)
Обновить
Регистрация для уведомлений через клиента (WP8.1 Silverligt) делает регистрацию в MPNS, чего я не хочу.
Фрагмент на сервере регистрирует WNS, две регистрации можно увидеть здесь:
Извлечение URI выполняется с использованием
var channel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
который в описании заявляет, что возвращает WNS. Кажется, это означает, что регистрация, которую я делаю на сервере (фрагмент кода вверху), является правильной, а регистрация на клиенте - ошибочной.
Но регистрация на изображении кажется неправильной. Не долженPNS Identifier
отличаться для двух регистраций? такжеexpiration date
кажется неправильным?
Как исправить это, так какGetPush()
(который был доступен в примере, правильно зарегистрировал клиента для уведомлений) не существует в пакете NuGet?
Обновить
Я прочитал одно место, которое удаляет и воссоздаетNotificationHub
мог бы помочь. Я попробую это сегодня. Даже если это работает, было бы более желательно иметь решение и знать, правильно ли выполнены регистрации?
Временное решение:
Deltede, воссоздал, вставил SID пакета и секретный. И это снова работает (странно)!
Все еще интересует основной вопрос!