Почему устройства iOS могут не получать уведомления pu sh от Azure pu sh концентратора уведомлений? - PullRequest
0 голосов
/ 07 мая 2020

Проблема

Я хочу получать уведомления pu sh на iOS устройствах, они были отправлены с моего веб-API, но уведомления pu sh никогда не получаются.

Все уведомления, отправленные из API, представлены в Azure pu sh метрике уведомлений c как успешно отправленные, но не полученные устройствами.

Однако в случае отправки pu sh уведомления от Azure Pu sh центр уведомлений, через тестовую отправку уведомления отправлены и получены успешно.

Конфигурация:

Конфигурация веб-API:
. NET Core 2.2 web api
Nuget для отправки уведомления pu sh из веб-api: Microsoft. Azure .NotificationHubs
Все устройства регистрируются как установки с конечной точки веб-api.

await _hubClient.CreateOrUpdateInstallationAsync(new Installation()
{
    Tags = installation.Tags,
    Platform = NotificationPlatform.Apns,
    PushChannel = installation.PushChannel,
    InstallationId = Guid.NewGuid().ToString()
});

Для отправки уведомлений pu sh используется собственный подход.

var headers = new Dictionary<string, string>
{
    { "apns-push-type", "alert" },
    { "apns-priority", "5" }
};
var message = "{\"Aps\":{\"Alert\":\"Notification Hub test notification\"}}";
var tagExpression = newNotification.Tags.Aggregate((first, second) => $"{first} || {second}");
var notification = new AppleNotification(message, headers);
outcome = await _hubClient.SendNotificationAsync(notification, tagExpression, CancellationToken.None);

Я пробовал также следующий подход, но он дал тот же результат:

await _hubClient.SendAppleNativeNotificationAsync(newNotification.Content, tagExpression);

Azure:
Azure Уведомление Hub Apple (APNS) настроен с аутентификацией на основе токенов для производственной среды.

Также я пробовал:

  1. Проверка подлинности на основе сертификата для Azure pu sh уведомления hub;
  2. enableTestSend для лучшей отладки. Результатом уведомления о результате будет «Успех»;
  3. Увеличен Azure pu sh план обновления до S1 для лучшего опыта отладки. Результатом уведомления о результате также было «Успех»;
  4. Повторное создание pu sh концентратора уведомлений;
  5. Удаление всех существующих установок;
  6. Тестирование было выполнено на 5 различных устройствах.

Вопрос:

  1. Есть ли способ отлаживать недоставленные pu sh уведомления за пределами Azure центр уведомлений?
  2. Что может вызвать pu sh уведомления не доставляются для этого случая?

1 Ответ

0 голосов
/ 07 мая 2020

Хорошо, моя проблема решилась очень быстро :)

В случае, если кому интересно, в шаблоне APNS была опечатка. Его не было в верблюжьем футляре.
Неправильно:

"{\"Aps\":{\"Alert\":\"Notification Hub test notification\"}}"

Хорошо:

"{\"aps\":{\"alert\":\"Notification Hub test notification\"}}"
...