다음을 통해 공유


알림 메시지 원격 분석 가져오기

이 API는 나가는 푸시 알림의 완료된 상태에 대한 추가 원격 분석을 제공합니다. 허브에서 보낸 푸시 알림을 모니터링할 수 있도록 설계되었습니다. 이 API에서 사용하는 알림 ID는 알림을 보내는 데 사용되는 REST API의 응답에 포함된 HTTP 위치 헤더에서 검색할 수 있습니다.

이 메시지별 원격 분석 기능은 예약된 알림에도 사용할 수 있습니다.

이 API는 표준 계층 알림 허브에만 사용할 수 있습니다.

요청

메서드 요청 URI HTTP 버전
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
권한 부여 Service Bus를 사용한 공유 액세스 서명 인증에 지정된 대로 생성된 SAS 토큰입니다.
x-ms-version 2016-07(2015-01 이상 지원)

요청 본문

없음

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다. 응답 본문은 성공에 따라 반환됩니다.

응답 코드

코드 Description
200 메시지 원격 분석이 성공적으로 검색되었습니다. 원격 분석 데이터는 전송된 알림 메시지의 대상 디바이스 수와 처리할 시스템을 통해 메시지가 얼마나 진행되었는지에 따라 부분 응답일 수 있습니다.
400 요청 형식이 잘못되어 메시지 원격 분석을 검색할 수 없습니다.
401 인증 실패 액세스 키가 잘못되었습니다.
403 이 기능이 SKU에 대해 사용하도록 설정되지 않았기 때문에 요청이 거부되었습니다. 표준으로 업그레이드합니다.
404 원격 분석이 없습니다. 이 오류는 알림 ID가 유효하지 않은 경우에 발생할 수 있습니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

응답 헤더 Description
Content-type application/xml; charset=utf-8

응답 본문

응답 본문은 다음 요소로 구성된 NotificationDetails 문서입니다.

요소 설명
NotificationId 알림 메시지를 식별하는 요청에 전달된 ID입니다.
위치 메시지의 URI
시스템 상태 메시지 진행률을 나타냅니다. 상태는 다음 값 중 하나일 수 있습니다.
  • 중단됨: 메시지 처리가 중단되었습니다. 허용되는 기간 내에 메시지를 처리할 수 없는 경우에 발생합니다. 기본적으로 30분입니다.
  • 취소됨: 사용자가 이 예약된 메시지를 취소했습니다.
  • 완료됨: 메시지 처리가 완료되었습니다.
  • 큐에 대기됨: 메시지가 수락되었지만 처리가 아직 시작되지 않았습니다.
  • NoTargetFound: 이 메시지를 보낼 디바이스를 찾을 수 없습니다.
  • 처리: 메시지 처리가 시작되었습니다.
  • 예약됨: 메시지가 큐에 있으며 예약된 시간에 전송됩니다.
  • 알 수 없음: 메시지 처리가 알 수 없는 상태입니다.
EnqueueTime 메시지가 수락된 시간을 나타냅니다.
StartTime 알림 허브 서비스가 알림 작업을 시작한 시기를 나타냅니다.
EndTime 알림 허브 서비스가 알림에 대한 작업을 완료한 시기를 나타냅니다.
NotificationBody 원래 알림 메시지의 본문입니다.
TargetPlatforms 알림이 대상으로 하는 플랫폼을 나타냅니다. 다음 값을 쉼표로 구분된 문자열로 포함할 수 있습니다.
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts 이 요소는 Apple Push Notification Service로 전송되는 알림에 대해 존재합니다. 결과 인스턴스의 컬렉션을 포함합니다.
MpnsOutcomeCounts 이 요소는 Microsoft 푸시 알림 서비스로 전송되는 알림에 대해 존재합니다. 결과 인스턴스의 컬렉션을 포함합니다.
WnsOutcomeCounts 이 요소는 Windows Notification Service로 전송되는 알림에 대해 존재합니다. 결과 인스턴스의 컬렉션을 포함합니다.
GcmOutcomeCounts 이 요소는 Google Cloud Messaging으로 전송되는 알림에 존재합니다. 결과 인스턴스의 컬렉션을 포함합니다.
AdmOutcomeCounts 이 요소는 Amazon Device Messaging으로 전송되는 알림에 존재합니다. 결과 인스턴스의 컬렉션을 포함합니다.
결과 이러한 인스턴스의 컬렉션은 각 플랫폼 알림 서비스에 대해 위의 수를 구성합니다. 각 결과는 결과 섹션에 언급된 명명된 개수 중 하나일 수 있습니다 .
PnsErrorDetailsUri 이 API 및 알림 메시지를 보내는 API에 사용되는 Api-Version 2016-07 이상이 필요합니다.

PNS 오류 세부 정보는 연결된 보내기 작업이 완료된 후에만 완전히 사용할 수 있습니다.

관련된 각 PNS에서 반환된 오류를 포함하는 Blob에 대한 URI를 가져옵니다. PNS에서 오류가 보고되지 않은 경우 이 멤버는 응답에 포함되지 않습니다. Azure Storage API를 사용하여 Blob을 읽을 수 있습니다. 자세한 내용은 .NET을 사용하여 Azure Blob Storage 시작 또는 Azure Storage Services REST API 참조 가능한 PNS 오류는 다음과 같습니다.
  • 잘못된 PNS 자격 증명
  • PNS에 연결할 수 없음
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Dropped
  • WrongChannel

결과

속성 개수 설명
AbandonedNotificationMessages 시간 제한으로 인해 삭제된 푸시 서비스에 대한 보내기 요청 수입니다.
BadChannel 채널이 잘못되어 푸시 서비스에 대한 통신이 실패했습니다.
ChannelDisconnected 푸시 서비스 연결이 끊어졌습니다.
ChannelThrottled 제한으로 인해 푸시 서비스가 액세스를 거부했습니다.
Dropped 푸시 서비스는 메시지가 삭제되었음을 나타냅니다.
ExpiredChannel 채널이 만료되어 푸시 서비스에 대한 통신이 실패했습니다.
InvalidCredentials 푸시 서비스에 인증하는 데 사용되는 자격 증명이 실패했습니다.
InvalidNotificationSize 푸시 요청이 너무 큽습니다.
NoTargets 보낼 항목이 없는 요청 수입니다.
PnsInterfaceError 푸시 서비스 계약 통신이 실패했습니다.
PnsServerError 푸시 서비스는 해당 쪽에서 오류가 발생했음을 나타냅니다.
PnsUnavailable 푸시 서비스를 사용할 수 없습니다.
PnsUnreachable 푸시 서비스가 응답하지 않았습니다.
건너뜀 중복 등록 수(동일한 PNS 핸들이 발견됨, 다른 등록 ID).
Success 요청을 일부 디바이스로 성공적으로 보냈습니다.
정체됨 제한으로 인해 푸시 서비스가 액세스를 거부했습니다.
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 네이티브 알림 보내기