Bibliothèque de client REST Azure CommunicationMessages pour JavaScript - version 2.0.0
Ce package contient un Kit de développement logiciel (SDK) JavaScript pour Azure Communication Messages Services.
Liens clés :
Commencer
Environnements actuellement pris en charge
Conditions préalables
- Vous devez disposer d’un abonnement Azure pour utiliser ce package.
- Ressource Communication Services existante. Si vous devez créer la ressource, vous pouvez utiliser le portail Azure
, le Azure PowerShell ou leAzure CLI. - Consultez comment inscrire un compte Whatsapp Business & créer un canal pour inscrire le canal Whatsapp à votre ressource Communication Services.
Installer le package @azure-rest/communication-messages
Installez la bibliothèque de client REST rest Azure CommunicationMessages pour JavaScript avec npm
:
npm install @azure-rest/communication-messages
Authentification
Vous pouvez obtenir une clé et/ou une chaîne de connexion à partir de votre ressource Communication Services dans portail Azure. Une fois que vous avez une clé, vous pouvez vous authentifier avec l’une des méthodes suivantes :
Utilisation d’une chaîne de connexion
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);
Utilisation de 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);
Utilisation de l’identité managée Azure Active Directory
L’authentification par clé API cliente est utilisée dans la plupart des exemples, mais vous pouvez également vous authentifier auprès d’Azure Active Directory à l’aide de la bibliothèque Azure Identity. Pour utiliser le fournisseur DefaultAzureCredential
npm install @azure/identity
Le package @azure/identity
fournit divers types d’informations d’identification que votre application peut utiliser pour ce faire. Le fichier README pour @azure/identity fournit plus de détails et d’exemples pour vous aider à démarrer.
AZURE_CLIENT_SECRET, AZURE_CLIENT_ID et AZURE_TENANT_ID variables d’environnement sont nécessaires pour créer un objet DefaultAzureCredential.
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);
Envoyer un message de modèle avec le canal WhatsApp
Note: Business always starts the conversation with a template message.
Pour envoyer un message de modèle, vous devez ajouter un modèle à votre compte WhatsApp Bussiness. Pour plus d’informations sur whatsApp Template, consultez Créer et gérer des modèles. Dans l’exemple ci-dessous, nous utilisons
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");
}
Envoyer un sms avec WhatsApp Channel
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");
}
Envoyer un message multimédia avec WhatsApp Channel
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");
}
Dépannage
Exploitation forestière
L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL
sur info
. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel
dans la @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Pour obtenir des instructions plus détaillées sur l’activation des journaux, vous pouvez consulter la documentationdu package
Étapes suivantes
Consultez les exemples répertoire pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.
Contribuant
Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.
Projets connexes
Azure SDK for JavaScript