Azure CommunicationMessages REST-Clientbibliothek für JavaScript – Version 1.0.1
Dieses Paket enthält ein JavaScript SDK für Azure Communication Messages Services.
Wichtige Links:
Erste Schritte
Die derzeitig unterstützten Umgebungen
Voraussetzungen
- Sie benötigen ein Azure-Abonnement , um dieses Paket verwenden zu können.
- Eine vorhandene Communication Services-Ressource. Wenn Sie die Ressource erstellen müssen, können Sie das Azure-Portal, die Azure PowerShell oder die Azure CLI verwenden.
- Erfahren Sie , wie Sie ein WhatsApp-Geschäftskonto registrieren & einen Kanal zum Registrieren eines WhatsApp-Kanals bei Ihrer Communication Services-Ressource erstellen.
Installieren Sie das Paket @azure-rest/communication-messages
.
Installieren Sie die REST-Clientbibliothek des Azure CommunicationMessages-REST-Clients für JavaScript mit npm
:
npm install @azure-rest/communication-messages
Authentifizierung
Sie können einen Schlüssel und/oder Verbindungszeichenfolge aus Ihrer Communication Services-Ressource im Azure-Portal abrufen. Sobald Sie über einen Schlüssel verfügen, können Sie sich mit einer der folgenden Methoden authentifizieren:
Verwenden eines 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, Aber Sie können sich auch mit Azure Active Directory mithilfe der Azure Identity-Bibliothek authentifizieren. Um den unten gezeigten Anbieter DefaultAzureCredential oder andere Anbieter von Anmeldeinformationen zu verwenden, die mit dem Azure SDK bereitgestellt werden, installieren Sie das @azure/identity
Paket:
npm install @azure/identity
Das @azure/identity
Paket bietet eine Vielzahl von Anmeldeinformationstypen, die Ihre Anwendung dazu verwenden kann. Die INFODATEI 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";
let credential = new DefaultAzureCredential();
const client:MessagesServiceClient = MessageClient(endpoint, credential);
Senden einer Vorlagennachricht mit dem WhatsApp-Kanal
Note: Business always starts the conversation with a template message.
Zum Senden einer Vorlagennachricht müssen Sie Ihrem WhatsApp Bussiness-Konto eine 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 dem 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 dem 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");
}
Problembehandlung
Protokollierung
Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL
auf info
fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel
in @azure/logger
aufrufen:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in der Paketdokumentation zu @azure/logger.
Nächste Schritte
Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .
Mitwirken
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.
Verwandte Projekte
Azure SDK for JavaScript