Sdílet prostřednictvím


Sada Azure Notification Hubs SDK pro JavaScript

Azure Notification Hubs nabízí modul nabízených oznámení se škálováním na více systémů, který umožňuje odesílat oznámení na libovolnou platformu (Apple, Amazon Kindle, Firebase, Baidu, Xiaomi, Web, Windows atd.) z jakéhokoli back-endu (cloudu nebo místního prostředí). Notification Hubs funguje dobře pro podnikové i spotřebitelské scénáře. Příklady scénářů:

  • Odesílání oznámení o důležitých zprávách milionům uživatelů s minimálním zpožděním.
  • Odesílání kupónů závislých na aktuální poloze segmentům zájemců.
  • Odesílání oznámení o událostech uživatelům multimediálních, sportovních, finančních nebo herních aplikací nebo jejich skupinám.
  • Zasílání propagačního obsahu aplikacím kvůli informovanosti zákazníků a podpoře nabídky.
  • Upozorněte uživatele na podnikové události, jako jsou nové zprávy a pracovní položky.
  • Odesílání kódů k vícefaktorovému ověřování.

Klíčové odkazy:

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

Začínáme

Aktuálně podporovaná prostředí

  • LtS verze Node.js
  • Nejnovější verze prohlížečů Safari, Chrome, Edge a Firefox.

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

Instalace balíčku

npm install @azure/notification-hubs

Požadavky

Create prostředku Azure Notification Hubs

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

  1. Azure Portal
  2. Azure CLI
  3. Bicep
  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ě, nebo modulárního přístupu k návrhu. Přístup založený na třídách je konzistentní napříč všemi balíčky, aby se vytvořil klient a pak komunikovali s metodami v 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áři vybrat a zvolit, které funkce se mají importovat, protože každá metoda je vystavená zvlášť. Tento přístup používá export dílčích cest s ES-Modules k vystavení metod prostřednictvím přímých importů. S jednotlivými exporty to vytváří lepší prostředí pro třepání stromem a menší velikosti balíčků, které může vývojář využít.

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

Jsou zpřístupněny následující dílčí cesty:

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

Výše uvedený fragment kódu pak bude následující:

import { createClientContext, createOrUpdateInstallation } from "@azure/notification-hubs/api";
import { createAppleInstallation } from "@azure/notification-hubs/models";

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á řetězcem NotificationHubsClient , který podporuje připojovací řetězce sdíleného přístupového podpisu. To zahrnuje následující úrovně oprávnění: Naslouchat, Spravovat, Odeslat.

Naslouchání umožňuje, aby se klient zaregistroval prostřednictvím rozhraní API pro registraci a instalaci. Nástroj Odeslat umožňuje klientovi odesílat oznámení do zařízení pomocí rozhraní API pro odesílání. Nakonec správa umožňuje uživateli provádět správu registrace a instalace, jako jsou dotazy.

Nového NotificationHubsClient klienta je možné vytvořit pomocí konstruktoru s připojovací řetězec a názvem centra oznámení.

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

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

Pomocí modulárního přístupu createClientContext se dá importovat přes "@azure/notification-hubs/api" dílčí cestu.

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

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

Klíčové koncepty

NotificationHubClient Po inicializaci je možné prozkoumat následující koncepty.

  • Správa zařízení prostřednictvím popisů instalací a registrace
  • 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 oznámení platformy (PNS), jako jsou služby APN nebo Firebase, a přidružená metadata, jako jsou značky používané k odesílání nabízených oznámení cílovým skupinám. K tomu slouží dvě rozhraní API: instalační rozhraní API, které je novějším a upřednostňovaným mechanismem, a registrace.

Rozhraní API pro instalace

Instalace představují novější 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. Rozhraní API pro instalaci má oproti stávajícím registračním rozhraním API několik výhod, a to následujícími způsoby:

  • Plně idempotentní rozhraní API, takže volání create při instalaci, aby bylo možné operaci opakovat bez obav z duplicit.
  • userId Podpora vlastností a installationId , které se pak dají použít ve výrazech značek, jako $InstallationId:{myInstallId} jsou a $UserId:{bob@contoso.com}.
  • Šablony jsou nyní součástí instalace místo samostatné registrace a mohou být odkazovány podle názvu jako značky pro odeslání.
  • Částečné aktualizace jsou podporovány prostřednictvím standardu OPRAV JSON, který umožňuje přidávat značky a měnit další data, aniž by bylo nutné nejprve dotazovat instalaci.

Instalace je možné vytvořit pomocí createOrUpdateInstallation metody, jako je například následující:

import { NotificationHubsClient, createAppleInstallation } from "@azure/notification-hubs";
import { v4 as uuid } from "uuid";

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

// Create an installation for APNs
let installation = createAppleInstallation({
  installationId: uuid(), // Must be unique
  pushChannel: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0", // PNS specific handle
  tags: ["likes_hockey", "likes_football"],
});

installation = await client.createOrUpdateInstallation(installation);

Při použití modulárního přístupu by kód byl následující:

import { createClientContext, createOrUpdateInstallation } from "@azure/notification-hubs/api";
import { createAppleInstallation } from "@azure/notification-hubs/models";
import { v4 as uuid } from "uuid";

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

// Create an installation for APNs
let installation = createAppleInstallation({
  installationId: uuid(), // Must be unique
  pushChannel: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0", // PNS specific handle
  tags: ["likes_hockey", "likes_football"],
});

installation = await createOrUpdateInstallation(context, installation);

Aktualizaci instalace je možné provést prostřednictvím schématu opravy JSON, jako je přidání značky a ID uživatele pomocí metody .updateInstallation

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 byl následující:

import { createClientContext, updateInstallation } from "@azure/notification-hubs/api";
import { JsonPatch } from "@azure/notification-hubs/models";

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

Pokud chcete načíst existující instalaci, použijte metodu getInstallation s vaším stávají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 byl následující:

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

Rozhraní API pro registrace

Registrace je přidružená k systému PNS stejně jako výše uvedená instalace, s jedinečným identifikátorem zařízení z systému PNS a přidruženými značkami. Registrace šablon představují způsob, jak vytvořit předdefinované šablony těla, které je pak možné při odeslání přizpůsobit pomocí vlastností, které vyplní zprávu. Další informace o šablonách najdete v dokumentaci šablon.

Instalaci je možné vytvořit jedním ze dvou způsobů, nejprve získáním ID registrace ze serveru pomocí getInstallationId a pak createOrUpdateRegistration metodou nebo metodou createRegistration .

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

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

let registration = createAppleRegistrationDescription({
  deviceToken: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0",
  tags: ["likes_hockey", "likes_football"],
});

registration = await client.createRegistration(registration);

console.log(`New Registration ID: ${registration.registrationId}`);

Při použití modulárního přístupu by kód byl následující:

import { createClientContext, createRegistration } from "@azure/notification-hubs/api";
import { createAppleRegistrationDescription } from "@azure/notification-hubs/models";

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

let registration = createAppleRegistrationDescription({
  deviceToken: "00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0",
  tags: ["likes_hockey", "likes_football"],
});

registration = await createRegistration(context, registration);

console.log(`New Registration ID: ${registration.registrationId}`);

Aktualizace lze provést pomocí metody , updateRegistration ale na rozdíl od instalací nepodporuje přírůstkové aktualizace. Dotazování na existující registraci je možné provést pomocí getRegistration metody .

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

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

const registrationId = "<unique Registration ID>";

let registration = await client.getRegistration(registrationId);

registration.tags.push("likes_sports");

registration = await client.updateRegistration(registration);

Při použití modulárního přístupu by kód byl následující:

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

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

const registrationId = "<unique Registration ID>";

let registration = await getRegistration(context, registrationId);

registration.tags.push("likes_sports");

registration = await updateRegistration(context, registration);

Na rozdíl od instalací se dají dotazovat na registraci, aby se získaly všechny registrace, odpovídaly podmínce nebo pomocí značek. Registrace je možné dotazovat pomocí listRegistrationsmetody , listRegistrationsByChannel a listRegistrationsByTag . Všechny metody podporují omezení prostřednictvím top možnosti a asynchronní stránkování.

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

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

const registrations = await 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 byl následující:

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 odeslání

Notification Hubs podporuje odesílání oznámení do zařízení buď přímo pomocí jedinečného identifikátoru systému PNS, pomocí značek pro odesílání cílových skupin nebo obecného vysílání do všech zařízení. S využitím skladové položky Standard a vyšší umožňuje plánované odesílání uživatelům naplánovat oznámení až sedm dní předem. Všechny operace odesílání vrací ID sledování a ID korelace, které je možné použít pro případy podpory Notification Hubs. U skladové položky Standard a vyšší se vrátí také ID oznámení, které je možné použít k získání telemetrie oznámení prostřednictvím getNotificationOutcomeDetails metody .

Pro účely ladění je možné nastavit možnosti, enableTestSend na true které získá okamžitou zpětnou vazbu od systému PNS k sendNotification metodě, ale v produkčních scénářích nejsou podporované. U metod naplánovaného odesílání to není podporováno.

Nezpracované řetězce JSON nebo XML se dají posílat metodám odeslání nebo plánovaného odeslání, případně je možné použít tvůrce oznámení, který pomáhá vytvářet zprávy pro jednotlivé sítě PNS, jako jsou apNs, Firebase, Baidu, ADM a WNS. Tito tvůrci vytvoří nativní formát zprávy, takže není možné hádat, která pole jsou pro jednotlivé systémy PNS k dispozici.

// Using the class-based approach
import { createAppleNotificationBody } from "@azure/notification-hubs";

// Using the modular approach
import { createAppleNotification, createAppleNotificationBody } from "@azure/notification-hubs/models";

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

const result = await sendNotification(context, notification);

Vysílání – odeslání

Notification Hubs se dá použít k odesílání oznámení do všech registrovaných zařízení na platformě pomocí vysílání prostřednictvím metody .sendNotification

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

const context = createClientContext(connectionString, hubName);

const messageBody = `{ "aps" : { "alert" : "Hello" } }`;

const message = createAppleNotification({
  body: messageBody,
  headers: {
    "apns-priority": "10",
    "apns-push-type": "alert",
  },
});

const result = await client.sendNotification(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 byl následující:

import { createClientContext, sendNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs/models";

const context = createClientContext(connectionString, hubName);

const messageBody = `{ "aps" : { "alert" : "Hello" } }`;

const message = createAppleNotification({
  body: messageBody,
  headers: {
    "apns-priority": "10",
    "apns-push-type": "alert",
  },
});

const result = await sendNotification(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í

Pokud chce uživatel odeslat zařízení přímo, může ho odeslat pomocí jedinečného identifikátoru poskytnutého platformou, jako je token zařízení služby APNs, zavoláním sendNotification metody s parametrem deviceHandle .

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

const client = new NotificationHubsClient(connectionString, hubName);

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 byl následující:

import { createClientContext, sendDirectNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs/models";

const context = createClientContext(connectionString, hubName);

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í cílové skupiny

Kromě cílení na jedno zařízení může uživatel pomocí značek cílit na více zařízení. Tyto značky je možné zadat jako seznam značek, který pak vytvoří výraz značky pro shodu s registrovanými zařízeními, nebo prostřednictvím výrazu značky, který pak může použít logickou logiku k cílení na správnou cílovou skupinu. Další informace o výrazech značek a značek najdete v tématu Směrování a výrazy značek.

Pokud chcete vytvořit výraz značky z pole značek, je k dispozici Tvůrce výrazů značek s createTagExpression metodou, která je zpřístupněna na nejvyšší úrovni importu nebo @azure/notification-hubs/models/tagExpressionBuilder modulárního importu, která ze značek vytvoří výraz "nebo značky".

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

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

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

console.log(tagExpression);
// likes_football||likes_hockey

Zprávy výrazů značek je možné odesílat 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 byl následující:

import { createClientContext, sendNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs/models";

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

Naplánované odeslání

Nabízená oznámení je možné naplánovat až sedm dní předem pomocí oborů názvů standardních skladových položek a vyšších pomocí scheduleBroadcastNotification metody odesílání do zařízení se značkami nebo obecným vysíláním. Tím se vrátí ID oznámení, které se pak dá v případě potřeby zrušit pomocí metody .cancelScheduledNotification

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 byl následující:

import { createClientContext, scheduleNotification } from "@azure/notification-hubs/api";
import { createAppleNotification } from "@azure/notification-hubs/models";

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

Poradce při potížích

Podpora React Native

React Native aktuálně nepodporuje [URLSearchParams], kterou používá sada Azure Notification Hubs SDK. Abyste mohli sadu SDK používat v React Native, budete muset před použitím sady SDK nainstalovat url-search-params-polyfill balíček a naimportovat ho.

import 'url-search-params-polyfill';

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

Diagnostika vyřazených oznámení

Azure Notification Hubs obsahuje kompletního průvodce odstraňováním potíží s zahozenými oznámeními v průvodci diagnostikou vyřazených oznámení ve službě Azure Notification Hubs.

Testovací odeslání se podporuje v sendNotification metodě s enableTestSend možností :

// Using the client
const result = await client.sendNotification(notification, { tags, enableTestSend: true });

// Using the modular approach
const result = await sendNotification(context, notification, { tags, enableTestSend: true });

protokolování

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

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k balíčkům @azure/protokolovacího nástroje.

Další kroky

Následující ukázky ukazují různé způsoby interakce se službou Azure Notification Hubs:

Správa zařízení:

Operace odeslání:

Operace správy:

Přispívání

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

Testy tohoto modulu jsou kombinací živých testů a testů jednotek, které vyžadují, abyste měli instanci Azure Notification Hubs. K provedení testů budete muset spustit:

  1. rush update
  2. rush build -t @azure/notification-hubs
  3. Create ve složce soubor .env s následujícím obsahemsdk\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. rushx test.

Další podrobnosti najdete v naší složce testů .

Imprese