Получение данных телеметрии сообщения уведомления
Этот API предоставляет дополнительные данные телеметрии о завершенных состояниях исходящих push-уведомлений. Он предназначен для мониторинга push-уведомлений, отправляемых из концентратора. Идентификатор уведомления, используемый этим API, можно получить из заголовка РАСПОЛОЖЕНИЯ HTTP, включенного в ответ REST API, используемый для отправки уведомления.
Эта функция телеметрии для каждого сообщения также доступна для запланированных уведомлений.
Этот API доступен только для центров уведомлений уровня "Стандартный".
Запрос
Метод | Универсальный код ресурса (URI) запроса | параметр "Версия HTTP" |
---|---|---|
GET | https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 |
HTTP/1.1 |
Заголовки запросов
В следующей таблице перечислены обязательные и необязательные заголовки запросов.
Заголовок запроса | Описание |
---|---|
Авторизация | Маркер SAS, созданный, как указано в разделе Проверка подлинности подписанного URL-адреса с помощью служебной шины. |
x-ms-version | 2016-07 (поддерживается до 2015-01 или более поздней версии) |
Текст запроса
Нет.
Ответ
Ответ включает код состояния HTTP и набор заголовков ответа. Текст ответа возвращается при успешном выполнении.
Коды ответов
Код | Описание |
---|---|
200 | Телеметрия сообщения успешно получена. Данные телеметрии могут быть частичным ответом в зависимости от количества устройств, на которые нацелено отправленное сообщение уведомления, и от того, как далеко сообщение проходит через нашу систему для обработки. |
400 | Не удалось получить данные телеметрии сообщения, так как запрос был сформирован неправильно. |
401 | Ошибка авторизации. Указана неправильная клавиша доступа. |
403 | Запрос отклонен, так как эта функция не включена для вашего номера SKU. Обновление до уровня "Стандартный". |
404 | Данные телеметрии не существуют. Эта ошибка может возникать, если идентификатор уведомления недопустим. |
Дополнительные сведения о кодах состояния см. в разделе Коды состояния и ошибок.
Заголовки ответов
Заголовок ответа | Описание |
---|---|
Content-type | application/xml; charset=utf-8 |
Текст ответа
Текст ответа представляет собой документ NotificationDetails, состоящий из следующих элементов:
Элемент | Описание |
---|---|
NotificationId | Идентификатор, переданный запросу, который идентифицирует сообщение уведомления. |
Расположение | Универсальный код ресурса (URI) для сообщения |
Состояние | Указывает ход выполнения сообщения. Состояние может иметь одно из следующих значений:
|
EnqueueTime | Указывает время принятия сообщения. |
StartTime | Указывает, когда служба концентратора уведомлений начала работу с уведомлением. |
EndTime | Указывает, когда служба концентратора уведомлений завершила работу с уведомлением. |
NotificationBody | Текст исходного сообщения уведомления. |
TargetPlatforms | Указывает, на какие платформы нацелено уведомление. Может содержать следующие значения в виде строки с разделителями-запятыми:
|
ApnsOutcomeCounts | Этот элемент присутствует для уведомлений, отправляемых в службу push-уведомлений Apple. Содержит коллекцию экземпляров Результатов. |
MpnsOutcomeCounts | Этот элемент присутствует для уведомлений, отправляемых в службу push-уведомлений Майкрософт. Содержит коллекцию экземпляров Результатов. |
WnsOutcomeCounts | Этот элемент присутствует для уведомлений, отправляемых в службу уведомлений Windows. Содержит коллекцию экземпляров Результатов. |
GcmOutcomeCounts | Этот элемент присутствует для уведомлений, отправляемых в Google Cloud Messaging. Содержит коллекцию экземпляров Результатов. |
AdmOutcomeCounts | Этот элемент присутствует для уведомлений, отправляемых в Amazon Device Messaging. Содержит коллекцию экземпляров Результатов. |
Результат | Коллекция этих экземпляров состоит из приведенных выше счетчиков для каждой службы уведомлений платформы. Каждый результат может быть одним из именованных счетчиков, упомянутых в разделе Результаты . |
PnsErrorDetailsUri | Требуется Api-Version 2016-07 и более поздних версий, используемых для этого API и API, отправляющего уведомление. Сведения об ошибке PNS полностью доступны только после завершения связанной операции отправки. Возвращает универсальный код ресурса (URI) большого двоичного объекта, содержащего ошибки, возвращаемые каждым задействованным PNS. Если PNS не сообщила об ошибках, этот элемент не включается в ответ. Для чтения большого двоичного объекта можно использовать API службы хранилища Azure. Дополнительные сведения см. в статье Начало работы с хранилищем BLOB-объектов Azure с помощью .NET или Справочник по REST API служб хранилища Azure Возможные ошибки PNS:
|
Результаты
Имя | Описание счетчика |
---|---|
AbandonedNotificationMessages | Количество запросов на отправку в службу push-уведомлений, которые были удалены из-за истечения времени ожидания. |
BadChannel | Не удалось установить связь со службой push-уведомлений, так как канал был недопустимым. |
ChannelDisconnected | Служба отправки отключена. |
ChannelThrottled | Службе push-уведомлений отказано в доступе из-за регулирования. |
Dropped | Служба push-уведомлений указывает, что сообщение было удалено. |
ExpiredChannel | Не удалось установить связь со службой push-уведомлений, так как срок действия канала истек. |
InvalidCredentials | Сбой учетных данных, используемых для проверки подлинности в службе push-уведомлений. |
InvalidNotificationSize | Запрос на отправку слишком велик. |
NoTargets | Количество запросов, которые не нашли ничего для отправки. |
PnsInterfaceError | Не удалось выполнить обмен данными с контрактом службы отправки. |
PnsServerError | Служба push-уведомлений указала, что на их стороне произошла ошибка. |
PnsUnavailable | Служба push-уведомлений недоступна. |
PnsUnreachable | Служба push-уведомлений не отвечает. |
Пропущено | Количество повторяющихся регистраций (один и тот же дескриптор PNS найден, другой идентификатор регистрации). |
Успешное завершение | Запрос успешно отправлен на некоторое количество устройств. |
Ожидает повтора | Службе push-уведомлений отказано в доступе из-за регулирования. |
UnknownError | Произошла неизвестная ошибка. |
WrongToken | Дескриптор PNS не был распознан PNS как допустимый дескриптор. |
Ниже приведен пример данных телеметрии из отправки уведомления в WNS:
<NotificationDetails xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<NotificationId>{Your message id}</NotificationId>
<Location>sb://{Your namespace}.servicebus.windows.net/{your hub name}/messages/{your message id}?api-version=2015-04</Location>
<State>Completed</State>
<EnqueueTime>2015-11-02T21:19:43Z</EnqueueTime>
<StartTime>2015-11-02T21:19:43.9926996Z</StartTime>
<EndTime>2015-11-02T21:19:43.9926996Z</EndTime>
<NotificationBody><?xml version="1.0" encoding="utf-16"?><toast><visual><binding template="ToastText01"><text id="1">Hello from a .NET App!</text></binding></visual></toast></NotificationBody>
<TargetPlatforms>windows</TargetPlatforms>
<WnsOutcomeCounts>
<Outcome>
<Name>Success</Name>
<Count>3</Count>
</Outcome>
<Outcome>
<Name>WrongToken</Name>
<Count>1</Count>
</Outcome>
</WnsOutcomeCounts>
<PnsErrorDetailsUri>{Blob uri}</PnsErrorDetailsUri>
</NotificationDetails>
См. также:
Отправка уведомления шаблона
Отправка собственного уведомления APNS
Отправка собственного уведомления GCM
Отправка собственного уведомления MPNS
Отправка собственного уведомления WNS