Sdílet prostřednictvím


Sada SDK služby Azure Notification Hubs pro JavaScript

Azure Notification Hubs poskytují modul nabízených oznámení se škálováním na více instancí, který umožňuje odesílat oznámení na libovolnou platformu (Apple, Amazon Kindle, Firebase, Baidu, Xiaomi, Web, Windows atd.) z libovolného back-endu (cloudového nebo místního). Notification Hubs funguje dobře pro podnikové i spotřebitelské scénáře. Zde je několik ukázkových scénářů:

  • Posílejte oznámení o nejnovějších zprávách milionům lidí s nízkou latencí.
  • Posílejte kupóny založené na poloze zainteresovaným segmentům uživatelů.
  • Odesílejte oznámení související s událostmi uživatelům nebo skupinám pro mediální/sportovní/finanční/herní aplikace.
  • Sdílejte propagační obsah do aplikací, abyste zaujali a nabídli zákazníkům.
  • Upozorňovat uživatele na podnikové události, jako jsou nové zprávy a pracovní položky.
  • Odesílejte kódy pro vícefaktorové ověřování.

Klíčové odkazy:

POZNÁMKA: Pokud balíček používáte azure-sb , podívejte se na stránku migration guide to move from azure-sb to @azure/notification-hubs

Začínáme

Aktuálně podporovaná prostředí

Další podrobnosti najdete v zásadách podpory.

Nainstalujte balíček

npm install @azure/notification-hubs

Požadavky

Vytvoření prostředku Azure Notification Hubs

Centrum oznámení Azure je možné vytvořit pomocí následujících metod:

  1. Portál Azure
  2. Azure CLI
  3. Biceps
  4. Šablona ARM

Po vytvoření je možné centrum oznámení nakonfigurovat pomocí webu Azure Portal nebo Azure CLI.

Import klienta

Tato sada SDK pro JavaScript nabízí dva způsoby interakce se službou Azure Notification Hubs, a to buď prostřednictvím přístupu založeného na třídách, nebo pomocí modulárního přístupu k návrhu. Přístup založený na třídách je konzistentní ve všech balíčcích pro vytvoření klienta a následnou interakci s metodami na klientovi.

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

Modulární přístup umožňuje vývojářům vybrat si, které funkce mají importovat, protože každá metoda je vystavena samostatně. Tento přístup používá export dílčích cest s ES-Modules k vystavení metod prostřednictvím přímých importů. Díky individuálním exportům se tak vytváří lepší prostředí pro otřásání stromy a menší velikosti balíčků, které může vývojář využít.

Všimněte si, že vytvoření klienta je zpřístupněno "@azure/notification-hubs/api" prostřednictvím dílčí cesty a všechny metody klienta jsou zpřístupněny "@azure/notification-hubs/api" prostřednictvím dílčí cesty. Každá exportovaná funkce převezme parametr jako client první parametr a ostatní parametry zůstanou nezměněny.

Zobrazí se následující podcesty:

  • @azure/notification-hubs/api - Hlavní vstupní bod pro klienta prostřednictvím createClientContext a klientských metod, jako jsou getInstallation nebo sendNotification
  • @azure/notification-hubs/models - Modely a tovární metody služby Notification Hubs.

Výše uvedený fragment kódu se pak změní na následující:

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

Ověření klienta

Interakce s centrem oznámení Azure začíná tím NotificationHubsClient , co podporuje připojovací řetězce sdíleného přístupového podpisu. To zahrnuje následující úrovně oprávnění: Naslouchat, Spravovat, Odesílat.

Funkce Listen umožňuje klientovi zaregistrovat se prostřednictvím rozhraní API pro registraci a instalace. Send umožňuje klientovi odesílat oznámení do zařízení pomocí rozhraní API pro odesílání. A konečně, Správa umožňuje uživateli provádět správu registrace a instalace, jako jsou dotazy.

Pomocí konstruktoru je možné vytvořit nového NotificationHubsClient klienta s připojovacím řetězcem a názvem centra oznámení.

import { NotificationHubsClient } from "@azure/notification-hubs";

const client = new NotificationHubsClient("<connection string>", "<hub name>");

Při použití modulárního přístupu lze objekt createClientContext importovat prostřednictvím "@azure/notification-hubs/api" dílčí cesty.

import { createClientContext } from "@azure/notification-hubs/api";

const context = createClientContext("<connection string>", "<hub name>");

Klíčové koncepty

Po inicializaci NotificationHubClient lze prozkoumat následující koncepty.

  • Správa zařízení prostřednictvím instalací a registracePopisy
  • Odesílání oznámení do zařízení

Správa zařízení

Správa zařízení je základním konceptem služby Notification Hubs, aby bylo možné ukládat jedinečný identifikátor z nativní služby PNS (Platform Notification Service), jako jsou APNs nebo Firebase, a související metadata, jako jsou značky používané k odesílání nabízených oznámení cílovým skupinám. To se provádí pomocí dvou rozhraní API, instalačního rozhraní API, které je novějším a upřednostňovaným mechanismem, a registrací.

Rozhraní API instalací

Instalace představují novější a nativní přístup JSON ke správě zařízení, který obsahuje další vlastnosti, jako je ID instalace a ID uživatele, které lze použít k odesílání cílovým skupinám. Instalační rozhraní API má oproti stávajícím registračním rozhraním API několik výhod v následujících ohledech:

  • Plně idempotentní API tak volání create při instalaci, takže operaci lze opakovat bez obav z duplikace.
  • Podpora vlastností a installationIduserId , které lze poté použít ve výrazech značek jako a $InstallationId:{myInstallId}$UserId:{bob@contoso.com}.
  • Šablony jsou nyní součástí instalace namísto samostatné registrace a lze na ně odkazovat podle názvu jako na značku pro odeslání.
  • Částečné aktualizace jsou podporovány prostřednictvím standardu JSON Patch Standard, který umožňuje přidávat značky a měnit další data bez nutnosti nejprve zadávat dotaz na instalaci.

Instalace lze vytvořit například následujícím createOrUpdateInstallation způsobem:

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

Při použití modulárního přístupu by kód vypadal takto:

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

Aktualizaci instalace lze provést prostřednictvím schématu opravy JSON, například přidáním značky a ID uživatele pomocí této updateInstallation metody.

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

Při použití modulárního přístupu by kód vypadal takto:

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

Chcete-li načíst existující instalaci, použijte metodu getInstallation s existujícím jedinečným ID instalace.

import { NotificationHubsClient } from "@azure/notification-hubs";

const client = new NotificationHubsClient("<connection string>", "<hub name>");

const installationId = "<unique installation ID>";

const installation = client.getInstallation(installationId);

Při použití modulárního přístupu by kód vypadal takto:

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

API registrací

Registrace je spojena s PNS stejně jako výše uvedená instalace, s jedinečným identifikátorem zařízení z PNS a přidruženými tagy. Registrace šablon představují způsob vytváření předdefinovaných šablon textu, které lze poté v době odeslání přizpůsobit pomocí vlastností, které se vyplní do zprávy. Další informace o šablonách naleznete v dokumentaci k šablonám.

Instalace může být vytvořena jedním ze dvou způsobů, nejprve získáním ID registrace ze serveru pomocí getInstallationId a poté createOrUpdateRegistration nebo pomocí createRegistration metody.

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

Při použití modulárního přístupu by kód vypadal takto:

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

Aktualizace lze provádět pomocí updateRegistration metody, ale na rozdíl od instalací nepodporuje přírůstkové aktualizace. Pomocí této getRegistration metody lze provést dotaz na existující registraci.

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

Při použití modulárního přístupu by kód vypadal takto:

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

Registrace, na rozdíl od instalací, lze dotazovat, aby se získaly všechny registrace, odpovídající registrace s podmínkou nebo podle značek. Na registrace lze dotazovat pomocí listRegistrationsmetody , listRegistrationsByChannel and listRegistrationsByTag . Všechny metody podporují omezení pomocí top této volby a podporují asynchronní stránkování.

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));
  }
}

Při použití modulárního přístupu by kód vypadal takto:

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));
  }
}

Operace odesílání

Notification Hubs podporuje odesílání oznámení do zařízení buď přímo pomocí jedinečného identifikátoru poskytnutého PNS, pomocí značek pro odesílání cílové skupiny, nebo obecného vysílání do všech zařízení. Při použití standardní SKU a vyšší umožňuje plánované odesílání uživateli naplánovat oznámení až sedm dní předem. Všechny operace odeslání vracejí ID sledování a ID korelace, které lze použít pro případy podpory Notification Hubs. U standardní SKU a vyšší se také vrátí ID oznámení, které lze použít k získání telemetrie oznámení prostřednictvím této getNotificationOutcomeDetails metody.

Pro účely ladění lze nastavit true možnosti, enableTestSend které získají okamžitou zpětnou vazbu z PNS o metoděsendNotification, ale nejsou podporovány v produkčních scénářích. Tato možnost není podporována u naplánovaných metod odesílání.

Do metod odesílání nebo plánovaného odesílání lze odesílat nezpracované řetězce JSON nebo XML nebo lze použít tvůrce oznámení, které pomáhají vytvářet zprávy podle PNS, jako jsou APNs, Firebase, Baidu, ADM a WNS. Tito tvůrci vytvoří nativní formát zpráv, takže nedojde k dohadování o tom, která pole jsou k dispozici pro jednotlivé PNS.

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 Send

Notification Hubs je možné použít k odesílání oznámení všem registrovaným zařízením na platformě pomocí odesílání všesměrového vysílání prostřednictvím této sendBroadcastNotification metody.

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}`);
}

Při použití modulárního přístupu by kód vypadal takto:

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}`);
}

Přímé odeslání

Pro přímé odeslání zařízení může uživatel odeslat pomocí jedinečného identifikátoru poskytnutého platformou, jako je token zařízení APNs, voláním sendNotification metody s parametrem deviceHandle .

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}`);
}

Při použití modulárního přístupu by kód vypadal takto:

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}`);
}

Odeslání publika

Kromě cílení na jedno zařízení může uživatel cílit na více zařízení pomocí značek. Tyto tagy mohou být dodány jako seznam tagů, který pak vytvoří výraz tagu, který bude odpovídat registrovaným zařízením, nebo prostřednictvím výrazu tagu, který pak může pomocí booleovské logiky cílit na správné publikum. Další informace o značkách a výrazech značek naleznete v části Směrování a výrazy značek.

Pokud si přejete vytvořit výraz tagu z pole tagů, je k dispozici Tag Expression Builder s metodou createTagExpression , která je zobrazena na nejvyšší úrovni importu nebo @azure/notification-hubs/models/tagExpressionBuilder modulárního importu, který z tagů vytvoří výraz "nebo tag".

import { createTagExpression } from "@azure/notification-hubs";

const tags = ["likes_football", "likes_hockey"];
const tagExpression = createTagExpression(tags);

console.log(tagExpression);

Zprávy s výrazem tagu lze odeslat pomocí následujícího kódu:

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}`);
}

Při použití modulárního přístupu by kód vypadal takto:

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}`);
}

Plánované odeslání

Nabízená oznámení lze naplánovat až sedm dní předem se standardními SKU obory názvů a vyššími scheduleNotification pomocí metody pro odesílání do zařízení s tagy nebo obecného vysílání s scheduleBroadcastNotification. To vrátí ID oznámení, které lze poté použít ke zrušení v případě potřeby prostřednictvím cancelScheduledNotification metody.

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}`);

Při použití modulárního přístupu by kód vypadal takto:

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}`);

Řešení problémů

Podpora React Native

React Native v současné době nemá podporu pro [URLSearchParams], kterou používá sada Azure Notification Hubs SDK. Abyste mohli sadu SDK používat v aplikaci React Native, musíte balíček nainstalovat url-search-params-polyfill a importovat před jeho použitím.

Potřebujeme také poskytnout polyfill pro TextEncoder API a API asynchronního iterátoru. Další podrobnosti naleznete v naší ukázce React Native s Expo .

Diagnostika zrušených oznámení

Azure Notification Hubs obsahuje kompletního průvodce řešením potíží se zrušenými oznámeními v příručce Diagnostika vyřazených oznámení v Azure Notification Hubs.

Test send je podporován v metodách sendNotification and sendBroadcastNotification s enableTestSend možností:

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,
});

Logování

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.

Další kroky

Následující ukázky ukazují různé způsoby interakce s Azure Notification Hubs:

Správa zařízení:

Operace odeslání:

Operace správy:

Contributing

Pokud chcete přispívat do této knihovny, přečtěte si průvodce pro přispívání a přečtěte si další informace o tom, jak sestavit a otestovat kód.

Testy tohoto modulu jsou kombinací živých a jednotkových testů, které vyžadují, abyste měli instanci Azure Notification Hubs. Chcete-li provést testy, budete muset spustit:

  1. pnpm install
  2. pnpm build --filter @azure/notification-hubs...
  3. Ve složce vytvořte soubor .env s tímto obsahem 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.

Další podrobnosti najdete v naší složce tests .