Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Notification Hubs, herhangi bir arka uçtan (bulut veya şirket içi) herhangi bir platforma (Apple, Amazon Kindle, Firebase, Baidu, Xiaomi, Web, Windows vb.) bildirim göndermenizi sağlayan ölçeği genişletilmiş bir anında iletme altyapısı sağlar. Notification Hubs hem kurumsal hem de tüketici senaryoları için iyi çalışır. Aşağıda birkaç örnek senaryo verilmiştir:
- Düşük gecikme süresiyle milyonlara son dakika haber bildirimleri gönderin.
- İlgilenen kullanıcı segmentlerine konum bazlı kuponlar gönderin.
- Medya/spor/finans/oyun uygulamaları için kullanıcılara veya gruplara etkinlikle ilgili bildirimler gönderin.
- Müşterilerle etkileşim kurmak ve pazarlamak için promosyon içeriklerini uygulamalara gönderin.
- Kullanıcıları yeni iletiler ve iş öğeleri gibi kurumsal olaylar hakkında bilgilendirin.
- Çok faktörlü kimlik doğrulama için kodlar gönderin.
Önemli bağlantılar:
NOT: Paketi kullanmaktan azure-sb geliyorsanız, migration guide to move from azure-sb to @azure/notification-hubs
Başlangıç Yapmak
Şu anda desteklenen ortamlar
- Node.js LTS sürümleri
- Safari, Chrome, Edge ve Firefox'un en son sürümleri.
Daha fazla ayrıntı için destek ilkemize bakın.
Paketi yükle
npm install @azure/notification-hubs
Önkoşullar
- Azure Aboneliği
- Bir App Notification Hubs kaynağı.
Azure Notification Hubs kaynağı oluşturma
Azure Notification Hub aşağıdaki yöntemler kullanılarak oluşturulabilir:
Bildirim Hub'ı oluşturulduktan sonra Azure Portal veya Azure CLI kullanılarak yapılandırılabilir.
İstemciyi İçe Aktarma
JavaScript için bu SDK, sınıf tabanlı yaklaşımla veya modüler tasarım yaklaşımıyla Azure Notification Hubs ile etkileşim kurmanın iki yolunu sunar. Sınıf tabanlı yaklaşım, bir istemci oluşturmak ve ardından istemcideki yöntemlerle etkileşim kurmak için tüm paketlerde tutarlıdır.
import { NotificationHubsClient, createAppleInstallation } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const installation = createAppleInstallation({
installationId: "<installation-id>",
pushChannel: "<push-channel>",
tags: ["likes_javascript"],
});
const result = await client.createOrUpdateInstallation(installation);
Modüler yaklaşım, geliştiricinin her yöntem ayrı ayrı kullanıma sunulduğu için hangi işlevlerin içe aktarılacağını seçmesine olanak tanır. Bu yaklaşım, yöntemleri doğrudan içeri aktarma yoluyla kullanıma sunmak için ES-Modules ile alt yol dışa aktarmalarını kullanır. Bireysel dışa aktarmalarla bu, daha iyi bir ağaç sallama deneyimi ve geliştiricinin yararlanabileceği daha küçük paket boyutları yaratır.
İstemci oluşturmanın alt yol aracılığıyla "@azure/notification-hubs/api" kullanıma sunulduğunu ve tüm istemci yöntemlerinin alt yol aracılığıyla "@azure/notification-hubs/api" kullanıma sunulduğunu unutmayın. Dışa aktarılan her fonksiyon ilk parametre olarak alır client ve parametrelerin geri kalanı değişmeden kalır.
Aşağıdaki alt yollar kullanıma sunulur:
-
@azure/notification-hubs/api- İstemci içincreateClientContextana giriş noktası ve veya gibigetInstallationistemci yöntemlerisendNotification -
@azure/notification-hubs/models- Notification Hubs modelleri ve fabrika yöntemleri.
Yukarıdaki kod parçacığı daha sonra aşağıdaki gibi olur:
import { createClientContext, createOrUpdateInstallation } from "@azure/notification-hubs/api";
import { createAppleInstallation } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const installation = createAppleInstallation({
installationId: "<installation-id>",
pushChannel: "<push-channel>",
tags: ["likes_javascript"],
});
const result = await createOrUpdateInstallation(context, installation);
İstemcinin kimliğini doğrulama
Azure Notification Hub ile etkileşim, NotificationHubsClientPaylaşılan Erişim İmzası bağlantı dizelerini destekleyen ile başlar. Bu, şu izin düzeylerini içerir: Dinle, Yönet, Gönder.
Dinleme, bir istemcinin kendisini Kayıt ve Yükleme API'si aracılığıyla kaydetmesine olanak tanır. Gönder, istemcinin gönderme API'lerini kullanarak cihazlara bildirim göndermesine olanak tanır. Son olarak Manage, kullanıcının sorgular gibi Kayıt ve Kurulum yönetimini yapmasına olanak tanır.
Bağlantı dizesi ve Notification Hub adıyla oluşturucu kullanılarak yeni NotificationHubsClient bir istemci oluşturulabilir.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
Modüler yaklaşım kullanılarak, createClientContext alt yol aracılığıyla "@azure/notification-hubs/api" içe aktarılabilir.
import { createClientContext } from "@azure/notification-hubs/api";
const context = createClientContext("<connection string>", "<hub name>");
Temel kavramlar
Başlatıldıktan NotificationHubClient sonra aşağıdaki kavramlar keşfedilebilir.
- Kurulumlar ve Kayıt Yoluyla Cihaz YönetimiAçıklamalar
- Cihazlara Bildirim Gönderme
Cihaz Yönetimi
Cihaz yönetimi, APNs veya Firebase gibi yerel Platform Bildirim Hizmeti'nden (PNS) benzersiz tanımlayıcıyı ve izleyicilere anında iletme bildirimleri göndermek için kullanılan etiketler gibi ilişkili meta verileri depolayabilmek için Notification Hubs için temel bir kavramdır. Bu, iki API ile yapılır: daha yeni ve tercih edilen mekanizma olan Kurulum API'si ve Kayıtlar.
Yükleme API'si
Yüklemeler, hedef kitlelere göndermek için kullanılabilecek yükleme kimliği ve kullanıcı kimliği gibi ek özellikler içeren, cihaz yönetimine yönelik daha yeni ve yerel bir JSON yaklaşımıdır. Yükleme API'sinin mevcut Kayıt API'lerine göre aşağıdaki şekillerde birkaç avantajı vardır:
- Tamamen bir kez etkili API, bu nedenle kurulumda oluşturma çağrısı yapar, böylece bir işlem yinelemeler konusunda endişelenmeden yeniden denenebilir.
- Daha sonra ve gibi
$UserId:{bob@contoso.com}$InstallationId:{myInstallId}etiket ifadelerinde kullanılabilen veuserIdinstallationIdözellikleri için destek. - Şablonlar artık ayrı bir kayıt yerine kurulumun bir parçasıdır ve gönderilecek bir etiket olarak ada göre referans alınabilir.
- Kısmi güncellemeler, önce kurulumu sorgulamak zorunda kalmadan etiket eklemeye ve diğer verileri değiştirmeye olanak tanıyan JSON Patch Standard aracılığıyla desteklenir.
Kurulumlar aşağıdaki gibi yöntemlerle oluşturulabilir createOrUpdateInstallation :
import { NotificationHubsClient, createAppleInstallation } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
// Create an installation for APNs
const installation = createAppleInstallation({
installationId: "0d8ab095-c449-493f-9195-17e4917806c4", // Must be unique
pushChannel: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0", // PNS specific handle
tags: ["likes_hockey", "likes_football"],
});
const response = await client.createOrUpdateInstallation(installation);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, createOrUpdateInstallation } from "@azure/notification-hubs/api";
import { createAppleInstallation } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
// Create an installation for APNs
const installation = createAppleInstallation({
installationId: "0d8ab095-c449-493f-9195-17e4917806c4", // Must be unique
pushChannel: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0", // PNS specific handle
tags: ["likes_hockey", "likes_football"],
});
const response = await createOrUpdateInstallation(context, installation);
Bir kurulumda, yöntemi kullanılarak bir etiket ve kullanıcı kimliği ekleme gibi JSON Patch şeması updateInstallation aracılığıyla bir güncelleme yapılabilir.
import { NotificationHubsClient, JsonPatch } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const installationId = "<unique installation ID>";
const updates: JsonPatch[] = [
{ op: "add", path: "/tags", value: "likes_baseball" },
{ op: "add", path: "/userId", value: "bob@contoso.com" },
];
const installation = await client.updateInstallation(installationId, updates);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, updateInstallation } from "@azure/notification-hubs/api";
import { JsonPatch } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const installationId = "<unique installation ID>";
const updates: JsonPatch[] = [
{ op: "add", path: "/tags", value: "likes_baseball" },
{ op: "add", path: "/userId", value: "bob@contoso.com" },
];
const installation = await updateInstallation(context, installationId, updates);
Mevcut bir yüklemeyi getInstallation almak için, yöntemi mevcut benzersiz yükleme kimliğinizle kullanın.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const installationId = "<unique installation ID>";
const installation = client.getInstallation(installationId);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, getInstallation } from "@azure/notification-hubs/api";
const context = createClientContext("<connection string>", "<hub name>");
const installationId = "<unique installation ID>";
const installation = getInstallation(context, installationId);
Kayıt API'si
Kayıt, yukarıdaki yüklemede olduğu gibi, PNS'den gelen benzersiz cihaz tanımlayıcısı ve ilişkili etiketlerle PNS ile ilişkilendirilir. Şablon kayıtları, daha sonra gönderme zamanında mesajın doldurulacağı özelliklerle özelleştirilebilen önceden tanımlanmış gövde şablonları oluşturmanın bir yoludur. Şablonlar hakkında daha fazla bilgi için Şablonlar belgelerine bakın.
Bir kurulum, önce sunucudan bir kayıt kimliği alarak ve ardından createOrUpdateRegistration yöntemi kullanarak getInstallationIdcreateRegistration veya aracılığıyla olmak üzere iki yoldan biriyle oluşturulabilir.
import {
NotificationHubsClient,
createAppleRegistrationDescription,
} from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const registration = createAppleRegistrationDescription({
deviceToken: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0",
tags: ["likes_hockey", "likes_football"],
});
const updatedRegistration = await client.createRegistration(registration);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, createRegistration } from "@azure/notification-hubs/api";
import { createAppleRegistrationDescription } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const registration = createAppleRegistrationDescription({
deviceToken: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0",
tags: ["likes_hockey", "likes_football"],
});
const updatedRegistration = await createRegistration(context, registration);
Güncellemeler yöntemi aracılığıyla yapılabilir, updateRegistration ancak kurulumlardan farklı olarak artımlı güncellemeleri desteklemez. Var olan bir kayıt için sorgulama yöntemi ile getRegistration yapılabilir.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const registrationId = "<unique Registration ID>";
const registration = await client.getRegistration(registrationId);
if (registration.tags) {
registration.tags.push("likes_sports");
} else {
registration.tags = ["likes_sports"];
}
const updatedRegistration = await client.updateRegistration(registration);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import {
createClientContext,
getRegistration,
updateRegistration,
} from "@azure/notification-hubs/api";
const context = createClientContext("<connection string>", "<hub name>");
const registrationId = "<unique Registration ID>";
const registration = await getRegistration(context, registrationId);
if (registration.tags) {
registration.tags.push("likes_sports");
} else {
registration.tags = ["likes_sports"];
}
const updatedRegistration = await updateRegistration(context, registration);
Kayıtlar, yüklemelerden farklı olarak, tüm kayıtları almak, kayıtları bir koşulla eşleştirmek veya etiketlere göre sorgulanabilir. Kayıtlar kullanılarak listRegistrationsByChannel sorgulanabilir listRegistrationsve listRegistrationsByTag yöntemi. Tüm yöntemler, seçenek aracılığıyla sınırlamayı destekler ve zaman uyumsuz sayfalamayı top destekler.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const registrations = client.listRegistrationsByTag("likes_hockey");
let page = 0;
for await (const pages of registrations.byPage()) {
console.log(`Page number ${page++}`);
for (const item of pages) {
console.log(JSON.stringify(item, null, 2));
}
}
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, listRegistrationsByTag } from "@azure/notification-hubs/api";
const context = createClientContext("<connection string>", "<hub name>");
const registrations = await listRegistrationsByTag(context, "likes_hockey");
let page = 0;
for await (const pages of registrations.byPage()) {
console.log(`Page number ${page++}`);
for (const item of pages) {
console.log(JSON.stringify(item, null, 2));
}
}
gönderme işlemleri
Notification Hubs, doğrudan PNS tarafından sağlanan benzersiz tanımlayıcıyı kullanarak, hedef kitle gönderme etiketlerini kullanarak veya tüm cihazlara genel bir yayın kullanarak cihazlara bildirim göndermeyi destekler. Standart SKU ve üzerini kullanan zamanlanmış gönderme , kullanıcının bildirimleri yedi gün öncesine kadar zamanlamasına olanak tanır. Tüm gönderme işlemleri, Notification Hubs destek talepleri için kullanılabilecek bir İzleme Kimliği ve Bağıntı Kimliği döndürür. Standart SKU ve üzeri sürümlerde, yöntemi aracılığıyla getNotificationOutcomeDetails bildirim telemetrisi almak için kullanılabilecek bir Bildirim Kimliği de döndürülür.
Hata ayıklama amacıyla, enableTestSend yöntem hakkında sendNotification PNS'den anında geri bildirim alan seçenekler ayarlanabilirtrue, ancak üretim senaryolarında desteklenmez. Bu, zamanlanmış gönderme yöntemlerinde desteklenmez.
Ham JSON veya XML dizeleri, gönderme veya zamanlanmış gönderme yöntemlerine gönderilebilir veya APNs, Firebase, Baidu, ADM ve WNS gibi PNS başına iletiler oluşturmaya yardımcı olan bildirim oluşturucular kullanılabilir. Bu oluşturucular yerel ileti biçimini oluşturacak, böylece her PNS için hangi alanların kullanılabilir olduğu hakkında tahminde bulunulmayacak.
import { createAppleNotificationBody, createAppleNotification } from "@azure/notification-hubs";
const apnsBody = createAppleNotificationBody({
alert: {
title: "Notification Title",
subtitle: "Notification Subtitle",
body: "Notification body goes here",
},
sound: "default",
interruptionLevel: "time-sensitive",
});
// Send the message using the modular approach
const notification = createAppleNotification({
body: apnsBody,
});
Yayın Gönderme
Notification Hubs, yöntemi aracılığıyla sendBroadcastNotification yayın gönderme kullanılarak platform başına tüm kayıtlı cihazlara bildirim göndermek için kullanılabilir.
import { NotificationHubsClient, createAppleNotification } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await client.sendBroadcastNotification(message);
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, sendBroadcastNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await sendBroadcastNotification(context, message);
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Doğrudan Gönderim
Doğrudan bir cihaz göndermek için kullanıcı, yöntemi bir deviceHandle parametre ile çağırarak APNs cihaz belirteci gibi platform tarafından sağlanan benzersiz tanımlayıcıyı sendNotification kullanarak gönderebilir.
import { NotificationHubsClient, createAppleNotification } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const deviceHandle = "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await client.sendNotification(message, { deviceHandle });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, sendNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const deviceHandle = "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await sendNotification(context, message, { deviceHandle });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Kitle Gönder
Bir kullanıcı, tek bir cihazı hedeflemenin yanı sıra etiketleri kullanarak birden fazla cihazı hedefleyebilir. Bu etiketler, daha sonra kayıtlı cihazlarla eşleşecek bir etiket ifadesi oluşturan bir etiket listesi olarak veya daha sonra doğru kitleyi hedeflemek için Boole mantığını kullanabilen bir etiket ifadesi aracılığıyla sağlanabilir. Etiketler ve etiket ifadeleri hakkında daha fazla bilgi için bkz: Yönlendirme ve Etiket İfadeleri.
Bir etiket dizisinden bir etiket ifadesi oluşturmak isterseniz, etiketlerden bir "veya etiket ifadesi" oluşturan üst düzey içe aktarma veya @azure/notification-hubs/models/tagExpressionBuilder modüler içe aktarmada kullanıma sunulan yöntemle kullanılabilen createTagExpression bir Etiket İfadesi Oluşturucu vardır.
import { createTagExpression } from "@azure/notification-hubs";
const tags = ["likes_football", "likes_hockey"];
const tagExpression = createTagExpression(tags);
console.log(tagExpression);
Etiket ifadesi iletileri aşağıdaki kod kullanılarak gönderilebilir:
import { NotificationHubsClient, createAppleNotification } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const notification = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await client.sendNotification(notification, { tagExpression });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, sendNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const notification = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await sendNotification(context, notification, { tagExpression });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Only available in Standard SKU and above
if (result.notificationId) {
console.log(`Notification ID: ${result.notificationId}`);
}
Planlanmış Gönderme
Anlık bildirimler, etiketli cihazlara veya genel bir yayına scheduleNotificationscheduleBroadcastNotificationgönderme yöntemi kullanılarak Standart SKU ad alanları ve üzeri ile yedi gün öncesine kadar planlanabilir. Bu, daha sonra gerekirse yöntem aracılığıyla cancelScheduledNotification iptal etmek için kullanılabilecek bir bildirim kimliği döndürür.
import { NotificationHubsClient, createAppleNotification } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
// Schedule 8 hours from now
const scheduledTime = new Date(Date.now() + 8 * 60 * 60 * 1000);
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await client.scheduleNotification(scheduledTime, message, { tagExpression });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Can be used to cancel via the cancelScheduledSend method
console.log(`Notification ID: ${result.notificationId}`);
Modüler yaklaşımı kullanarak kod aşağıdaki gibi olacaktır:
import { createClientContext, scheduleNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
// Schedule 8 hours from now
const scheduledTime = new Date(Date.now() + 8 * 60 * 60 * 1000);
const message = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await scheduleNotification(context, scheduledTime, message, { tagExpression });
console.log(`Tracking ID: ${result.trackingId}`);
console.log(`Correlation ID: ${result.correlationId}`);
// Can be used to cancel via the cancelScheduledSend method
console.log(`Notification ID: ${result.notificationId}`);
Sorun giderme
React Native Desteği
React Native şu anda Azure Notification Hubs SDK'sı tarafından kullanılan [URLSearchParams] desteğine sahip değildir. SDK'yı React Native'de kullanmak için SDK'yı url-search-params-polyfill kullanmadan önce paketi kurmanız ve içeri aktarmanız gerekir.
Ayrıca API ve eşzamansız yineleyici API'si için TextEncoder çoklu doldurma sağlamamız gerekiyor. Daha fazla ayrıntı için lütfen Expo ile React Native örneğimize bakın.
Bırakılan Bildirimleri Teşhis Etme
Azure Notification Hubs, Azure Notification Hubs'da bırakılan bildirimleri tanılama Kılavuzu'nda bırakılan bildirimlerle ilgili sorunları gidermeye yönelik eksiksiz bir kılavuza sahiptir.
Test gönderme desteklenir ve sendBroadcastNotification yöntemlerinde sendNotification şu enableTestSend seçenekle desteklenir:
import { NotificationHubsClient, createAppleNotification } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const notification = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await client.sendNotification(notification, {
tagExpression,
enableTestSend: true,
});
import { createClientContext, sendNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs";
const context = createClientContext("<connection string>", "<hub name>");
const tagExpression = "likes_hockey && likes_football";
const messageBody = `{ "aps" : { "alert" : "Hello" } }`;
const notification = createAppleNotification({
body: messageBody,
headers: {
"apns-priority": "10",
"apns-push-type": "alert",
},
});
const result = await sendNotification(context, notification, {
tagExpression,
enableTestSend: true,
});
Ağaç kesimi
Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.
Sonraki Adımlar
Aşağıdaki örneklerde Azure Notification Hubs ile etkileşim kurmanın çeşitli yolları gösterilmektedir:
Cihaz yönetimi:
- Yükleme API'si
- Kayıt API'si
Gönderme İşlemleri:
- Yayın Gönderme
- Doğrudan Gönderim
- Kitle Etiketli Gönder Listesi
- Etiket İfadesi ile Hedef Kitle Gönderme
- Planlanmış Yayın Gönderimi
- Planlanmış Gönderme
Yönetim İşlemleri:
Contributing
Bu kitaplığa katkıda bulunmak isterseniz kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.
Bu modülün testleri, bir Azure Notification Hubs örneğine sahip olmanızı gerektiren canlı ve birim testlerinin bir karışımıdır. Testleri yürütmek için çalıştırmanız gerekir:
pnpm installpnpm build --filter @azure/notification-hubs...- Klasörde
sdk\notificationhubs\notification-hubsşu içeriklerle bir .env dosyası oluşturun:NOTIFICATIONHUBS_CONNECTION_STRING=connection string for your Notification Hubs instanceNOTIFICATION_HUB_NAME=Notification Hub name cd sdk\notificationhubs\notification-hubs-
npm run test.
Daha fazla ayrıntı için testler klasörümüzü görüntüleyin.
İlgili projeler
- JavaScript için Microsoft Azure SDK
- Azure Bildirim Hub'ları
Azure SDK for JavaScript