Megosztás a következőn keresztül:


Azure Notification Hubs SDK JavaScripthez

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

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:

  1. Azure Portal
  2. Azure CLI
  3. Bicepsz
  4. ARM-sablon

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él createClientContext fő belépési pontja és kliens módszerek, mint például getInstallation vagy sendNotification
  • @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 és installationId tulajdonsá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:

Küldési műveletek:

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:

  1. pnpm install
  2. pnpm build --filter @azure/notification-hubs...
  3. 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
  4. cd sdk\notificationhubs\notification-hubs
  5. npm run test.

További részletekért tekintse meg tesztmappánkat .