Aracılığıyla paylaş


Bildirim iletisi telemetrisini alma

Bu API, giden anında iletme bildirimlerinin son durumlarıyla ilgili ek telemetri sağlar. Bir hub'dan gönderilen anında iletme bildirimlerini izlemeye yardımcı olmak için tasarlanmıştır. Bu API'nin kullandığı Bildirim Kimliği, bildirimi göndermek için kullanılan REST API'nin yanıtında yer alan HTTP Konumu üst bilgisinden alınabilir.

Bu İleti Başına Telemetri özelliği, zamanlanmış bildirimler için de kullanılabilir.

Bu API yalnızca Standart katman bildirim hub'larında kullanılabilir.

İstek

Yöntem İstek URI'si HTTP sürümü
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

İstek üst bilgisi Açıklama
Yetkilendirme Service Bus ile Paylaşılan Erişim İmzası Kimlik Doğrulaması'nda belirtildiği gibi oluşturulan SAS belirteci.
x-ms-version 2016-07 (2015-01 veya üzeri tarafından desteklenir)

İstek gövdesi

Yok.

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir. Yanıt gövdesi başarılı olduğunda döndürülür.

Yanıt kodları

Kod Description
200 İleti telemetrisi başarıyla alındı. Telemetri verileri, gönderilen bildirim iletisi tarafından hedeflenen cihaz sayısına ve iletinin sistemimizde işlenmek üzere ne kadar ilerlemiş olduğuna bağlı olarak kısmi bir yanıt olabilir.
400 İstek yanlış biçimlendirilmiş olduğundan ileti telemetrisi alınamadı.
401 Yetkilendirme hatası. Erişim anahtarı yanlıştı.
403 Bu özellik SKU'nuz için etkinleştirilmediğinden istek reddedildi. Standart'a yükseltin.
404 Telemetri yok. Bildirim kimliği geçersiz olduğunda bu hata oluşabilir.

Durum kodları hakkında bilgi için bkz. Durum ve Hata Kodları.

Yanıt üst bilgileri

Yanıt üst bilgisi Açıklama
İçerik türü application/xml; charset=utf-8

Yanıt gövdesi

Yanıt gövdesi, aşağıdaki öğelerden oluşan bir NotificationDetails belgesidir:

Öğe Açıklama
NotificationId bildirim iletisini tanımlayan isteğe geçirilen kimlik.
Konum İleti için URI
Durum İletinin ilerleme durumunu gösterir. Durum aşağıdaki değerlerden biri olabilir:
  • Bırakıldı: İleti işleme bırakıldı. İleti kabul edilebilir zaman penceresinde işlenemediğinde gerçekleşir. Varsayılan olarak 30 dakikadır.
  • İptal edildi: Kullanıcı bu zamanlanmış iletiyi iptal etti.
  • Tamamlandı: İleti işleme tamamlandı.
  • Sıraya alındı: İleti kabul edildi ancak işleme henüz başlamadı.
  • NoTargetFound: Bu iletiyi gönderecek cihaz bulunamadı.
  • İşleme: İleti işleme başlatıldı.
  • Zamanlandı: İleti kuyruktadır ve zamanlanan zamanda gönderilir.
  • Bilinmiyor: İleti işleme bilinmeyen bir durumda.
EnqueueTime İletinin kabul edildiği saati gösterir.
StartTime Bildirim hub'ı hizmetinin bildirim üzerinde çalışmaya ne zaman başladığını gösterir.
EndTime Bildirim hub'ı hizmetinin bildirim üzerinde çalışmayı ne zaman tamamladiğini gösterir.
NotificationBody Özgün bildirim iletisinin gövdesi.
TargetPlatforms Bildirimin hangi platformları hedeflediğini gösterir. Virgülle ayrılmış dize olarak aşağıdaki değerleri içerebilir:
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts Bu öğe, Apple Anında İletme Bildirimi Hizmeti'ne gönderilen bildirimler için mevcuttur. Bir Sonuç örnekleri koleksiyonu içerir.
MpnsOutcomeCounts Bu öğe, Microsoft Anında İletme Bildirimi Hizmeti'ne gönderilen bildirimler için mevcuttur. Bir Sonuç örnekleri koleksiyonu içerir.
WnsOutcomeCounts Bu öğe, Windows Bildirim Hizmeti'ne gönderilen bildirimler için mevcuttur. Bir Sonuç örnekleri koleksiyonu içerir.
GcmOutcomeCounts Bu öğe, Google Cloud Messaging'e gönderilen bildirimler için mevcuttur. Bir Sonuç örnekleri koleksiyonu içerir.
AdmOutcomeCounts Bu öğe, Amazon Device Messaging'e gönderilen bildirimler için mevcuttur. Bir Sonuç örnekleri koleksiyonu içerir.
Sonuç Bu örneklerin bir koleksiyonu, her platform bildirim hizmeti için yukarıdaki sayıları oluşturur. Her sonuç, Sonuçlar bölümünde belirtilen adlandırılmış sayılardan biri olabilir.
PnsErrorDetailsUri Bu API için kullanılan Api-Version 2016-07 ve üzerini ve bildirim iletisini gönderen API'yi gerektirir.

PNS Hata ayrıntıları yalnızca ilişkili gönderme işlemi tamamlandıktan sonra tam olarak kullanılabilir.

URI'yi, ilgili her PNS tarafından döndürülen hataları içeren bir bloba alır. PNS tarafından hiçbir hata bildirildiyse, bu üye yanıta dahil değildir. Blobu okumak için Azure Depolama API'sini kullanabilirsiniz. Daha fazla bilgi için bkz. .NET kullanarak Azure Blob depolamayı kullanmaya başlama veya Azure Depolama Hizmetleri REST API Başvurusu Olası PNS hataları şunlardır:
  • Geçersiz PNS Kimlik Bilgileri
  • PNS'ye ulaşılamıyor
  • BadChannel
  • Süresi Dolan Kanal
  • PnsThrottled
  • InvalidToken
  • YanlışToken
  • Düştü
  • Yanlış Kanal

Sonuç -ları

Name Sayı açıklaması
AbandonedNotificationMessages Zaman aşımı nedeniyle bırakılan gönderme hizmetine gönderme isteklerinin sayısı.
BadChannel Kanal geçersiz olduğundan gönderme hizmetiyle iletişim başarısız oldu.
ChannelDisconnected Gönderme hizmetinin bağlantısı kesildi.
ChannelThrottled Azaltma nedeniyle gönderim hizmetinin erişimi reddedildi.
Düştü Gönderme hizmeti iletinin bırakıldığını gösterir.
Süresi Dolan Kanal Kanalın süresi dolduğundan gönderim hizmetiyle iletişim başarısız oldu.
InvalidCredentials Anında iletme hizmetinde kimlik doğrulaması için kullanılan kimlik bilgileri başarısız oldu.
InvalidNotificationSize Anında iletme isteği çok büyük.
NoTargets Hiçbir şey göndermeyecek istek sayısı.
PnsInterfaceError Anında iletme hizmeti sözleşmesi iletişimi başarısız oldu.
PnsServerError Anında iletme hizmeti, kendi tarafında bir hata olduğunu belirtti.
PnsUnavailable Anında iletme hizmeti kullanılamıyor.
PnsUnreachable Gönderme hizmeti yanıt vermiyordu.
Atlandı Yinelenen kayıtların sayısı (aynı PNS tanıtıcısı bulundu, farklı kayıt kimliği).
Başarılı İstek birkaç cihaza başarıyla gönderildi.
Bastırma Azaltma nedeniyle gönderim hizmetinin erişimi reddedildi.
UnknownError Bilinmeyen bir hata oluştu.
YanlışToken PNS tanıtıcısı, PNS tarafından geçerli bir tanıtıcı olarak tanınmadı.

Aşağıda WNS'ye bildirim göndermeye ilişkin örnek bir telemetri verilmiştir:

<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>

Ayrıca Bkz.

Şablon bildirimi gönderme
APNS yerel bildirimi gönderme
GCM yerel bildirimi gönderme
MPNS yerel bildirimi gönderme
WNS yerel bildirimi gönderme