Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Notification Hubs egy horizontálisan felskálázott leküldéses motort biztosít, amely lehetővé teszi, hogy értesítéseket küldjön bármilyen platformra (Apple, Amazon Kindle, Firebase, Baidu, Xiaomi, Web, Windows stb.) bármely háttérről (felhőből vagy helyszínről). A Notification Hubs nagyvállalati és fogyasztói forgatókönyvek esetén is jól működik. Íme néhány példaforgatókönyv:
- Küldjön friss hírekről értesítést millióknak alacsony késleltetéssel.
- Helyalapú kuponok küldése az érdeklődő felhasználói szegmenseknek.
- Küldjön eseményekkel kapcsolatos értesítéseket a felhasználóknak vagy csoportoknak média/sport/pénzügy/játékalkalmazásokhoz.
- Promóciós tartalmakat küldhet az alkalmazásoknak, hogy bevonja és értékesítse az ügyfeleket.
- Értesítse a felhasználókat a vállalati eseményekről, például az új üzenetekről és a munkaelemekről.
- Küldjön kódokat a többtényezős hitelesítéshez.
Főbb hivatkozások:
MEGJEGYZÉS: Ha a azure-sb csomag használatából érkezik, tekintse meg a migration guide to move from azure-sb to @azure/notification-hubs
Kezdő lépések
Jelenleg támogatott környezetek
- A Node.jsLTS-változatai
- A Safari, a Chrome, az Edge és a Firefox legújabb verziói.
További részletekért tekintse meg támogatási szabályzatunkat.
A csomag telepítése
npm install @azure/notification-hubs
Előfeltételek
Azure Notification Hubs-erőforrás létrehozása
Az Azure Notification Hub a következő módszerekkel hozható létre:
A létrehozás után az értesítési központ a Azure Portal vagy az Azure CLI használatával konfigurálható.
Az ügyfél importálása
Ez a JavaScripthez készült SDK kétféleképpen kommunikálhat az Azure Notification Hubsszal, akár osztályalapú megközelítéssel, akár moduláris tervezési megközelítéssel. Az osztályalapú megközelítés minden csomagban konzisztens az ügyfél létrehozásához, majd az ügyfél metódusaival való interakcióhoz.
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);
A moduláris megközelítés lehetővé teszi a fejlesztő számára, hogy kiválassza, mely függvényeket importálja, mivel az egyes metódusok külön-külön vannak elérhetők. Ez a megközelítés a ES-Modules alútvonal-exportálását használja a metódusok közvetlen importálással történő elérhetővé tételéhez. Az egyes exportokkal ez jobb fakarázási élményt és kisebb csomagméreteket eredményez, amelyeket a fejlesztő kihasználhat.
Vegye figyelembe, hogy az ügyfél létrehozása az alútvonalon "@azure/notification-hubs/api" keresztül érhető el, és az összes ügyfélmetódus az "@azure/notification-hubs/api" alútvonalon keresztül érhető el. Minden exportált függvény az client első paramétert veszi fel, a többi paraméter pedig változatlan marad.
A következő alútvonalak érhetők el:
-
@azure/notification-hubs/api- Az ügyfélcreateClientContextfő belépési pontja és kliens módszerek, mint példáulgetInstallationvagysendNotification -
@azure/notification-hubs/models- A Notification Hubs modelljei és gyári metódusai.
A fenti kódrészlet ezután a következő lesz:
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);
Az ügyfél hitelesítése
Az Azure Notification Hubbal való interakció a NotificationHubsClientközös hozzáférésű jogosultságkód kapcsolati sztringjeit támogató szolgáltatással kezdődik. Ez a következő jogosultsági szinteket foglalja magában: Figyelés, Kezelés, Küldés.
A Figyelés lehetővé teszi, hogy az ügyfél regisztrálja magát a Regisztráció és telepítés API-n keresztül. A Küldés lehetővé teszi, hogy az ügyfél értesítéseket küldjön az eszközöknek a küldési API-k használatával. Végül a Kezelés lehetővé teszi a felhasználó számára a regisztráció és a telepítés kezelését, például a lekérdezéseket.
NotificationHubsClient Új ügyfél hozható létre a konstruktor használatával a kapcsolati sztringgel és az értesítési központ nevével.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
A moduláris megközelítés használatával az createClientContext alútvonalon "@azure/notification-hubs/api" keresztül importálható.
import { createClientContext } from "@azure/notification-hubs/api";
const context = createClientContext("<connection string>", "<hub name>");
Főbb fogalmak
Az inicializálás után NotificationHubClient a következő fogalmak fedezhetők fel.
- Eszközkezelés telepítéseken és regisztráción keresztülLeírások
- Értesítések küldése az eszközökre
Eszközkezelés
Az eszközkezelés a Notification Hubs alapvető koncepciója, amely képes tárolni tudja a natív Platform Notification Service (PNS) (például APNs vagy Firebase) egyedi azonosítóját, valamint a kapcsolódó metaadatokat, például a közönségnek küldött leküldéses értesítések címkéit. Ez két API-val történik, a telepítési API-val, amely az újabb és előnyben részesített mechanizmus, valamint a regisztrációkkal.
Telepítési API
A telepítések az eszközkezelés újabb és natív JSON-megközelítései, amelyek további tulajdonságokat tartalmaznak, például egy telepítési azonosítót és egy felhasználói azonosítót, amelyek a célközönségnek való küldéshez használhatók. A telepítési API-nak van néhány előnye a meglévő regisztrációs API-kkal szemben a következő módokon:
- Teljesen idempotens API, így a telepítés létrehozásának hívása, így a művelet újrapróbálkozhat anélkül, hogy aggódnia kellene a duplikációk miatt.
- Támogatás
userIdésinstallationIdtulajdonságok, amelyek aztán használhatók olyan címkekifejezésekben, mint az$InstallationId:{myInstallId}és$UserId:{bob@contoso.com}. - A sablonok mostantól a telepítés részét képezik külön regisztráció helyett, és név szerint hivatkozhatnak rájuk címkeként a küldéshez.
- A részleges frissítéseket a JSON Patch Standard támogatja, amely lehetővé teszi címkék hozzáadását és egyéb adatok módosítását anélkül, hogy először le kellene kérdezni a telepítést.
A telepítések a createOrUpdateInstallation következő módszerrel hozhatók létre:
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);
A moduláris megközelítést használva a kód a következő lenne:
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);
A telepítés frissítése a JSON-javítási sémán keresztül történhet, például címke és felhasználói azonosító hozzáadása a updateInstallation metódussal.
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);
A moduláris megközelítést használva a kód a következő lenne:
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);
Meglévő telepítés lekéréséhez használja a getInstallation metódust a meglévő egyedi telepítési azonosítóval.
import { NotificationHubsClient } from "@azure/notification-hubs";
const client = new NotificationHubsClient("<connection string>", "<hub name>");
const installationId = "<unique installation ID>";
const installation = client.getInstallation(installationId);
A moduláris megközelítést használva a kód a következő lenne:
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);
Regisztrációs API
A regisztráció ugyanúgy társítva van a PNS-hez, mint a fenti telepítéshez, a PNS egyedi eszközazonosítójával és a kapcsolódó címkékkel. A sablonregisztrációk előre definiált törzssablonok létrehozásának módja, amelyek aztán a küldéskor testreszabhatók az üzenet kitöltendő tulajdonságaival. A sablonokkal kapcsolatos további információkért tekintse meg a Sablonok dokumentációját.
A telepítés kétféleképpen hozható létre, először úgy, hogy a kiszolgálótól lekér egy regisztrációs azonosítót a módszerrel getInstallationId , majd createOrUpdateRegistration vagy a createRegistration metódussal.
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);
A moduláris megközelítést használva a kód a következő lenne:
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);
A frissítések elvégezhetők a updateRegistration módszerrel, de a telepítésekkel ellentétben nem támogatja a növekményes frissítéseket. A metódussal meglévő regisztráció lekérdezése is elvégezhető getRegistration .
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);
A moduláris megközelítést használva a kód a következő lenne:
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);
A regisztrációk a telepítésekkel ellentétben lekérdezhetők az összes regisztráció lekéréséhez, a regisztrációk feltételhez való illesztéséhez vagy címkék alapján. A regisztrációk a listRegistrations, listRegistrationsByChannel és listRegistrationsByTag metódussal kérdezhetők le. Minden metódus támogatja az top opción keresztüli korlátozást, és támogatja az aszinkron lapozást.
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));
}
}
A moduláris megközelítést használva a kód a következő lenne:
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));
}
}
Műveletek küldése
A Notification Hubs támogatja az értesítések küldését az eszközökre közvetlenül az egyedi PNS-azonosítóval, címkék használatával a közönség küldéséhez, vagy általános közvetítéssel az összes eszközre. A Standard termékváltozat és újabb verziók használatával az ütemezett küldés lehetővé teszi a felhasználó számára, hogy akár hét nappal előre ütemezze az értesítéseket. Minden küldési művelet egy nyomkövetési azonosítót és korrelációs azonosítót ad vissza, amely a Notification Hubs támogatási eseteiben használható. A Standard termékváltozat és az újabb verziók esetén a rendszer egy értesítési azonosítót is visszaad, amely az értesítési telemetria használatával getNotificationOutcomeDetails a metódussal való lekérésére használható.
Hibakeresési célokra beállíthatók true azok a enableTestSend beállítások, amelyek azonnali visszajelzést kapnak a PNS-től a sendNotification metódusról, azonban éles környezetben nem támogatottak. Ez nem támogatott az ütemezett küldési módszereknél.
Nyers JSON- vagy XML-karakterláncok küldhetők a küldési vagy ütemezett küldési módszereknek, vagy használhatók az értesítéskészítők, amelyek segítenek PNS-enként üzeneteket készíteni, például APNs, Firebase, Baidu, ADM és WNS. Ezek a készítők a natív üzenetformátumot hozzák létre, így nem kell találgatni, hogy mely mezők érhetők el az egyes PNS-ekhez.
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,
});
Broadcast küldés
A Notification Hubs segítségével platformonként értesítéseket küldhet az összes regisztrált eszközre a módszerrel történő szórásos küldéssel sendBroadcastNotification .
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}`);
}
A moduláris megközelítést használva a kód a következő lenne:
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}`);
}
Közvetlen küldés
Ha közvetlenül szeretne küldeni egy eszközt, a felhasználó a platform által biztosított egyedi azonosítóval, például az APNs eszköztokennel küldhet a sendNotification metódus paraméterrel deviceHandle való meghívásával.
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}`);
}
A moduláris megközelítést használva a kód a következő lenne:
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}`);
}
Közönség küldése
Amellett, hogy egyetlen eszközt céloz meg, a felhasználó több eszközt is megcélozhat címkék használatával. Ezek a címkék megadhatók címkék listájaként, amely ezután létrehoz egy címkekifejezést a regisztrált eszközöknek megfelelően, vagy egy címkekifejezésen keresztül, amely logikai logikával célozhatja meg a megfelelő közönséget. További információ a címkékről és a címkekifejezésekről: Útválasztás és címkekifejezések.
Ha címkekifejezést szeretne létrehozni egy címketömbből, akkor elérhető egy címkekifejezés-készítő a createTagExpression legfelső szintű importálás vagy a @azure/notification-hubs/models/tagExpressionBuilder moduláris importálás során elérhető metódussal, amely létrehoz egy "vagy címkekifejezést" a címkékből.
import { createTagExpression } from "@azure/notification-hubs";
const tags = ["likes_football", "likes_hockey"];
const tagExpression = createTagExpression(tags);
console.log(tagExpression);
A címkekifejezés-üzenetek a következő kóddal küldhetők el:
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}`);
}
A moduláris megközelítést használva a kód a következő lenne:
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}`);
}
Ütemezett küldés
A leküldéses értesítések akár hét nappal előre ütemezhetők a Standard termékváltozatú és magasabb scheduleNotification névterekkel a címkékkel vagy általános közvetítéssel scheduleBroadcastNotificationrendelkező eszközökre való küldés módszerével. Ez egy értesítési azonosítót ad vissza, amely aztán szükség cancelScheduledNotification esetén a metódussal megszakítható.
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}`);
A moduláris megközelítést használva a kód a következő lenne:
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}`);
Hibaelhárítás
React natív támogatás
A React Native jelenleg nem támogatja a [URLSearchParams] szolgáltatást, amelyet az Azure Notification Hubs SDK használ. Ahhoz, hogy az SDK-t a React Native-ben használhassa, telepítenie kell a csomagot url-search-params-polyfill , és importálnia kell az SDK használata előtt.
Meg kell adnunk a polifill-t az TextEncoder API-hoz és az aszinkron iterátor API-hoz is. További részletekért tekintse meg a React Native mintánkat az Expo-val .
Eldobott értesítések diagnosztizálása
Az Azure Notification Hubs teljes körű útmutatót tartalmaz az eldobott értesítésekkel kapcsolatos problémák elhárításához az Azure Notification Hubs útmutatójában.
A tesztküldést a sendNotification és sendBroadcastNotification a metódusok enableTestSend támogatják a következő lehetőséggel:
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,
});
Logging
A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a környezeti változót a AZURE_LOG_LEVEL következőre info: . Alternatívaként a naplózás futásidőben is engedélyezhető a setLogLevel hívásával a @azure/logger.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
A naplók engedélyezésére vonatkozó részletesebb útmutatásért tekintse meg a @azure/logger csomag dokumentációit.
Következő lépések
Az alábbi minták az Azure Notification Hubs különböző módjait mutatják be:
Eszközkezelés:
- Telepítési API
- Regisztrációs API
Küldési műveletek:
- Broadcast küldés
- Közvetlen küldés
- Közönség küldése címkékkel lista
- Célközönség küldése címkekifejezéssel
- Ütemezett közvetítés küldése
- Ütemezett küldés
Menedzsment műveletek:
Közreműködés
Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód összeállításáról és teszteléséről.
A modul tesztjei élő és egységtesztek keverékei, amelyekhez egy Azure Notification Hubs-példányra van szükség. A tesztek végrehajtásához a következőket kell futtatnia:
pnpm installpnpm build --filter @azure/notification-hubs...- Hozzon létre egy .env fájlt a következő tartalommal a mappában
sdk\notificationhubs\notification-hubs:NOTIFICATIONHUBS_CONNECTION_STRING=connection string for your Notification Hubs instanceNOTIFICATION_HUB_NAME=Notification Hub name cd sdk\notificationhubs\notification-hubs-
npm run test.
További részletekért tekintse meg tesztmappánkat .
Kapcsolódó projektek
Azure SDK for JavaScript