Поделиться через


Миграция функций push-уведомлений

В этом разделе содержатся рекомендации по миграции в области функций push-уведомлений.

Внимание

В настоящее время поддерживаются только необработанные push-уведомления и push-уведомления приложений. Push-уведомления значка и push-уведомления плитки не поддерживаются.

Сводка различий между API и (или) функциями

Push-уведомления можно разбить на эти четыре отдельных этапа.

Этап UWP Пакет SDK для приложений Windows
Идентификация Центр партнеров (MSA) регистрация приложение Azure (AAD)
Запрос канала Асинхронный Асинхронный
идентификатор регистрации приложение Azure
Встроенная логика повторных попыток (до 5 повторных попыток)
Активация В процессе, PushTrigger*, активация COM* Активация COM, ShellExecute
Отправка push-уведомлений Использует конечную точку login.live.com для получения маркера доступа Использует конечную точку https://login.microsoftonline.com/{tenantID}/oauth2/token для запроса токена

* Поддерживается для Windows 10 версии 2004 (10.0; Сборка 19041) и более поздних версий.

Настройка удостоверений

В пакете SDK для приложений Windows функция push-уведомлений использует удостоверение из приложение Azure регистрации (AAD), что удаляет требование наличия имени семейства пакетов (PFN) из Центра партнеров для использования push-уведомлений.

  • Для приложения UWP вы регистрируете и регистрируете приложение в Центре партнеров Магазина Windows.
  • Для приложения пакета SDK для приложений для Windows создайте учетную запись Azure и создадите приложение Azure регистрацию (AAD).

Запросы канала

Запрос канала обрабатывается асинхронно и требует идентификатора GUID приложение Azure ID и azure tenantID (вы получаете идентификатор приложение Azure и идентификатор клиента из регистрации приложения AAD). Вместо имени семейства пакетов используется идентификатор приложение Azure ID, используемый приложением UWP. Если запрос выполняется с ошибкой повтора, платформа уведомлений попытается выполнить несколько повторных попыток.

Приложение пакета SDK для приложений Windows может проверить состояние запроса канала.

Активация

Инструкции по регистрации и активации пакета SDK для Приложений Windows см. в статье "Настройка приложения для получения push-уведомлений".

Отправка push-уведомлений

Приложение пакета SDK для приложений Windows должно запрашивать маркер доступа из конечной точки AAD, а не из конечной точки MSA.

Запрос маркера доступа

Для приложения UWP:

POST /accesstoken.srf HTTP/1.1
Host: login.live.com
Content-Type: application/x-www-form-urlencoded
Cookie: MSCC=73.140.231.96-US
Content-Length: 112

grant_type=client_credentials&client_id=<AppID_Here>&client_secret=<Client_Secret_Here>&scope=notify.windows.com

Для приложения пакета SDK для Приложений Windows (запрос маркера доступа AAD):

POST /{tenantID}/oauth2/v2.0/token Http/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 160

grant_type=client_credentials&client_id=<Azure_App_Registration_AppId_Here>&client_secret=<Azure_App_Registration_Secret_Here>&resource=https://wns.windows.com/

HTTP Post to WNS

Когда дело доходит до отправки HTTP-запроса POST в WNS, нет изменений из UWP. Маркер доступа по-прежнему передается в заголовке авторизации.

POST /?token=[ChannelURI] HTTP/1.1
Host: dm3p.notify.windows.com
Content-Type: application/octet-stream
X-WNS-Type: wns/raw
Authorization: Bearer [your access token]
Content-Length: 46

{ Sync: "Hello from the Contoso App Service" }

См. также