Уведомления, доставленные в Центр уведомлений Azure, не достигают устройства (Android) - PullRequest
0 голосов
/ 01 июня 2018

Мне нужен идентификатор сообщения уведомления, который должен быть возвращен из концентратора уведомлений Azure при отправке сообщения.

Я отправляю сообщение из серверной части приложения, используя метод SendGcmNativeNotificationAsync.

NotificationOutcome outcome = await hub.SendGcmNativeNotificationAsync(notif, tags);

После отправки уведомления свойство result.NotificationId будет пустым или пустым.Как я могу получить идентификатор уведомления?

Хотя полученный outcome.Result[0].Outcome имеет значение

«Уведомление успешно отправлено в систему push-уведомлений»

но уведомления не доставляются на зарегистрированное устройство.

Также я получаю идентификатор отслеживания в outcome.trackingid как я могу использовать его для отслеживания сообщения.

Я использую бесплатную версиюлазурного портала.

Пожалуйста, предложите

Заранее спасибо!

1 Ответ

0 голосов
/ 08 июня 2019

Мне потребовалось довольно много времени, чтобы понять это, потому что это не ясно задокументировано, но ответ прост: NotificationOutcome.NotificationId всегда равно нулю, когда уровень цен Azure не S1 (Стандартный).

Чтобы выяснить причину вашей проблемы, временно переключитесь на уровень цен S1.Затем вы получите NotificationId, и Azure зарегистрирует телеметрию для каждого сообщения.

Теоретически вы сможете получить результаты, позвонив GetNotificationOutcomeDetailsAsync с NotificationId, чтобы получить больше информации об ошибке.Может пройти до 30 минут (!), Прежде чем этот вызов будет успешным (если вы позвоните слишком рано, вы получите MessagingEntityNotFoundException).

К сожалению, состояние результата в основном завершено, даже если сообщение имелоневерный или просроченный идентификатор устройства.

Результаты в метриках, показанных в Azure для вашего концентратора уведомлений, верны, но я пока не нашел надежного способа получения результатов на основе сообщений.

Не забудьте вернуться на ценовой уровень F1 (бесплатно)!

...