Freigeben über


Azure CommunicationMessages REST-Clientbibliothek für JavaScript – Version 2.0.0

Dieses Paket enthält ein JavaScript SDK für Azure Communication Messages Services.

Wichtige Links:

Erste Schritte

Derzeit unterstützte Umgebungen

Voraussetzungen

  • Sie müssen über ein Azure-Abonnement verfügen,, um dieses Paket zu verwenden.
  • Eine vorhandene Kommunikationsdiensteressource. Wenn Sie die Ressource erstellen müssen, können Sie das Azure Portal, die Azure PowerShell-oder die Azure CLI-verwenden.
  • Informationen zum Registrieren eines Whatsapp-Geschäftskontos & Erstellen eines Kanals zum Registrieren des Whatsapp-Kanals für Ihre Kommunikationsdienste-Ressource finden Sie unter .

Installieren des @azure-rest/communication-messages-Pakets

Installieren Sie die Rest-Client-Clientbibliothek des Azure CommunicationMessages REST-Clients für JavaScript mit npm:

npm install @azure-rest/communication-messages

Authentifizierung

Sie können eine Schlüssel- und/oder Verbindungszeichenfolge aus Ihrer Kommunikationsdienste-Ressource in Azure Portalabrufen. Sobald Sie über einen Schlüssel verfügen, können Sie sich mit einer der folgenden Methoden authentifizieren:

Verwenden einer Verbindungszeichenfolge

import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";

const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client:MessagesServiceClient = MessageClient(connectionString);

Verwenden von AzureKeyCredential

import { AzureKeyCredential } from "@azure/core-auth";
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";

const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new AzureKeyCredential("<Base64-Encoded-Key>");
const client:MessagesServiceClient = MessageClient(endpoint, credential);

Verwenden der verwalteten Azure Active Directory-Identität

Die Client-API-Schlüsselauthentifizierung wird in den meisten Beispielen verwendet, Sie können sich aber auch mit Azure Active Directory mithilfe der Azure Identity-Bibliothekauthentifizieren. Um den unten gezeigten DefaultAzureCredential Anbieter oder andere Anmeldeinformationsanbieter zu verwenden, die mit dem Azure SDK bereitgestellt werden, installieren Sie bitte das @azure/identity Paket:

npm install @azure/identity

Das @azure/identity-Paket bietet eine Vielzahl von Anmeldeinformationstypen, die Ihre Anwendung verwenden kann, um dies zu tun. Die README für @azure/identity enthält weitere Details und Beispiele für die ersten Schritte. AZURE_CLIENT_SECRET sind AZURE_CLIENT_ID- und AZURE_TENANT_ID Umgebungsvariablen erforderlich, um ein DefaultAzureCredential-Objekt zu erstellen.

import { DefaultAzureCredential } from "@azure/identity";
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";

const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client:MessagesServiceClient = MessageClient(endpoint, credential);

Senden einer Vorlagennachricht mit WhatsApp-Kanal

Note: Business always starts the conversation with a template message.

Um eine Vorlagennachricht zu senden, müssen Sie Ihrem WhatsApp Bussiness-Konto Vorlage hinzufügen. Weitere Informationen zur WhatsApp-Vorlage finden Sie unter Erstellen und Verwalten von Vorlagen. Im folgenden Beispiel verwenden wir

 Template Name: sample_issue_resolution
 Template Language: en_US

 Template Body: "Hi {{1}}, were we able to solve the issue that you were facing?"
 
 With Quick Action Button (Yes, No)

const nameValue:MessageTemplateValue = {
        kind: "text",
        name: "name",
        text: "Arif"
    };

    const yesAction: MessageTemplateValue = {
        kind: "quickAction",
        name: "Yes",
        payload: "Yes"
    };

    const noAction: MessageTemplateValue = {
        kind: "quickAction",
        name: "No",
        payload: "No"
    };

    const templateBindings:MessageTemplateBindings = {
        kind: "whatsApp",
        body: [
            {
                refValue: "name"
            }
        ],
        buttons: [
            {
                subType: "quickReply",
                refValue: "Yes"
            },
            {
                subType: "quickReply",
                refValue: "No"
            }
        ]
    };

    const template:MessageTemplate = {
        name: "sample_issue_resolution",
        language: "en_US",
        bindings: templateBindings,
        values: [nameValue, yesAction, noAction]
    };

    const  result = await client.path("/messages/notifications:send").post({
        contentType: "application/json",
        body: {
            channelRegistrationId: "<Channel_Registration_Id>",
            to: ["<to-phone-number-1>"],
            kind: "template",
            template: template
        }
    });
    if (result.status === "202") {
        const response:Send202Response = result as Send202Response;
        response.body.receipts.forEach((receipt) => {
            console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
        });
    } else {
        throw new Error("Failed to send message");
    }

Senden einer Sms mit WhatsApp-Kanal

Note: Business can't start a conversation with a text message. It needs to be user initiated.

const  result = await client.path("/messages/notifications:send").post({
        contentType: "application/json",
        body: {
            channelRegistrationId: "<Channel_Registration_Id>",
            to: ["<to-phone-number-1>"],
            kind: "text",
            content: "Hello World!!"
        }
    });

 if (result.status === "202") {
        const response:Send202Response = result as Send202Response;
        response.body.receipts.forEach((receipt) => {
            console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
        });
    } else {
        throw new Error("Failed to send message");
    }

Senden einer Mediennachricht mit WhatsApp-Kanal

Note: Business can't start a conversation with a media message. It needs to be user initiated.

const  result = await client.path("/messages/notifications:send").post({
        contentType: "application/json",
        body: {
            channelRegistrationId: "<Channel_Registration_Id>",
            to: ["<to-phone-number-1>"],
            kind: "image",
            mediaUri: "https://<your-media-image-file>"
        }
    });

 if (result.status === "202") {
        const response:Send202Response = result as Send202Response;
        response.body.receipts.forEach((receipt) => {
            console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
        });
    } else {
        throw new Error("Failed to send message");
    }

Fehlerbehebung

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

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

setLogLevel("info");

Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in den @azure/Logger-Paketdokumenten.

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie in den Beispielen Verzeichnis.

Beitragend

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.

Aufrufe