Получение данных телеметрии сообщения уведомления

Этот 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) для сообщения
Состояние Указывает ход выполнения сообщения. Состояние может иметь одно из следующих значений:
  • Отброшено: обработка сообщений была прекращена. Это происходит, когда сообщение не может быть обработано в течение допустимого периода времени. По умолчанию это 30 минут.
  • Отменено: пользователь отменил это запланированное сообщение.
  • Завершено: обработка сообщений завершена.
  • Постановка в очередь: сообщение принято, но обработка еще не началась.
  • NoTargetFound: не найдены устройства для отправки этого сообщения.
  • Обработка: обработка сообщений запущена.
  • Запланировано: сообщение находится в очереди и отправляется в запланированное время.
  • Неизвестно: обработка сообщений находится в неизвестном состоянии.
EnqueueTime Указывает время принятия сообщения.
StartTime Указывает, когда служба концентратора уведомлений начала работу с уведомлением.
EndTime Указывает, когда служба концентратора уведомлений завершила работу с уведомлением.
NotificationBody Текст исходного сообщения уведомления.
TargetPlatforms Указывает, на какие платформы нацелено уведомление. Может содержать следующие значения в виде строки с разделителями-запятыми:
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
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:
  • Недопустимые учетные данные PNS
  • PNS недоступен
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

Результаты

Имя Описание счетчика
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>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;toast&gt;&lt;visual&gt;&lt;binding template="ToastText01"&gt;&lt;text id="1"&gt;Hello from a .NET App!&lt;/text&gt;&lt;/binding&gt;&lt;/visual&gt;&lt;/toast&gt;</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