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 info
fest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel
im @azure/logger
aktiviert 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.
Verwandte Projekte
Azure SDK for JavaScript