Démarrage rapide : Envoyer des messages WhatsApp à l’aide de messages avancés
Azure Communication Services vous permet d’envoyer et de recevoir des messages WhatsApp. Dans ce guide de démarrage rapide, vous intégrez votre application au SDK Azure Communication Advanced Messages et commencez à envoyer/recevoir des messages WhatsApp. Le fait de suivre ce guide de démarrage rapide entraîne une petite dépense de quelques cents USD tout au plus dans votre compte Azure.
Prérequis
Compte WhatsApp Business inscrit auprès de votre ressource Azure Communication Services
Numéro de téléphone WhatsApp actif pour recevoir des messages
Environnement de développement .NET (comme Visual Studio, Visual Studio Code ou Interface CLI .NET)
Configuration
Créer le projet .NET
Pour créer votre projet, suivez le tutoriel Créer une application console .NET à l’aide de Visual Studio.
Pour compiler votre code, appuyez sur Ctrl+F7.
Installer le package
Installez le package NuGet Azure.Communication.Messages dans votre projet C#.
- Ouvrez le Gestionnaire de package NuGet à
Project
>Manage NuGet Packages...
. - Recherchez le package
Azure.Communication.Messages
. - Installez la dernière version.
Configurer le framework d’application
Ouvrez le fichier Program.cs dans un éditeur de texte.
Remplacez le contenu de vote fichier Program.cs par le code suivant :
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Azure;
using Azure.Communication.Messages;
namespace AdvancedMessagingQuickstart
{
class Program
{
public static async Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Send WhatsApp Messages");
// Quickstart code goes here
}
}
}
Pour utiliser les fonctionnalités de messagerie avancée, nous ajoutons une directive using
afin d’inclure l’espace de noms Azure.Communication.Messages
.
using Azure.Communication.Messages;
Modèle objet
Les classes et interfaces suivantes gèrent certaines des principales fonctionnalités du kit de développement logiciel (SDK) Messagerie avancée Azure Communication Services pour .NET.
Nom | Description |
---|---|
NotificationMessagesClient | Cette classe se connecte à votre ressource Azure Communication Services. Elle envoie les messages. |
MessageTemplate | Cette classe définit le modèle que vous utilisez et le contenu des propriétés du modèle pour votre message. |
TemplateNotificationContent | Cette classe définit le « qui » et le « quoi » du modèle de message que vous envisagez d’envoyer. |
TextNotificationContent | Cette classe définit le « qui » et le « quoi » du message texte que vous envisagez d’envoyer. |
MediaNotificationContent | Cette classe définit le « qui » et le « quoi » du message multimédia que vous envisagez d’envoyer. |
Exemples de code
Suivez ces étapes pour ajouter les extraits de code nécessaires à la fonction Main de votre fichier Program.cs.
- Authentifier le client
- Définir un ID d’inscription de canal
- Définir la liste des destinataires
- Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
- Envoyer un SMS à un utilisateur WhatsApp
- Envoyer un message multimédia à un utilisateur WhatsApp
Authentifier le client
NotificationMessagesClient
est utilisé pour se connecter à votre ressource Azure Communication Services.
Par souci de simplicité, ce guide de démarrage rapide utilise une chaîne de connexion pour s’authentifier. Dans les environnements de production, nous vous recommandons d’utiliser des principaux de service.
Obtenez la chaîne de connexion de votre ressource Azure Communication Services dans le portail Azure. Sur la gauche, accédez à l’onglet Keys
. Copiez le champ Connection string
de la clé primaire. La chaîne de connexion est au format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Définissez la variable d’environnement COMMUNICATION_SERVICES_CONNECTION_STRING
sur la valeur de votre chaîne de connexion.
Ouvrez une fenêtre de console et entrez la commande suivante :
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Après avoir ajouté la variable d’environnement, vous devrez peut-être redémarrer tous les programmes en cours d’exécution qui devront la lire, y compris la fenêtre de console. Par exemple, si vous utilisez Visual Studio comme éditeur, redémarrez Visual Studio avant d’exécuter l’exemple.
Pour plus d’informations sur la façon de définir une variable d’environnement pour votre système, suivez les étapes décrites dans Stocker votre chaîne de connexion dans une variable d’environnement.
Pour instancier un NotificationMessagesClient
, ajoutez le code suivant à la méthode Main
:
// Retrieve connection string from environment variable
string connectionString =
Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
// Instantiate the client
var notificationMessagesClient = new NotificationMessagesClient(connectionString);
Définir un ID d’inscription de canal
Le GUID de l’ID d’inscription de canal a été créé pendant l’inscription du canal. Vous pouvez le rechercher dans le portail sous l’onglet Canaux de votre ressource Azure Communication Services.
Attribuez-le à une variable appelée channelRegistrationId.
var channelRegistrationId = new Guid("<your channel registration ID GUID>");
Définir la liste des destinataires
Vous devez fournir un numéro de téléphone réel associé à un compte WhatsApp. Ce compte WhatsApp reçoit les modèles de messages, les messages multimédias et les SMS envoyés dans ce guide de démarrage rapide. Pour ce guide de démarrage rapide, ce numéro de téléphone peut être votre numéro de téléphone personnel.
Le numéro de téléphone du destinataire ne peut pas être le numéro de téléphone professionnel (ID d’expéditeur) associé à l’inscription du canal WhatsApp. L’ID d’expéditeur s’affiche comme étant l’expéditeur des messages textuels et multimédias envoyés au destinataire.
Le numéro de téléphone doit inclure le code du pays. Pour plus d’informations sur la mise en forme des numéros de téléphone, consultez la documentation WhatsApp sur les Formats des numéros de téléphone.
Remarque
Un seul numéro de téléphone est actuellement pris en charge dans la liste des destinataires.
Créez la liste des destinataires de la façon suivante :
var recipientList = new List<string> { "<to WhatsApp phone number>" };
Exemple :
// Example only
var recipientList = new List<string> { "+14255550199" };
Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
Les conversations entre un compte WhatsApp Business et un utilisateur WhatsApp peuvent être lancées de deux manières :
- L’entreprise envoie un message modèle à l’utilisateur WhatsApp.
- L’utilisateur WhatsApp envoie n’importe quel message au numéro professionnel.
Quelle que soit la façon dont la conversation a été démarrée, une entreprise ne peut envoyer des modèles de messages qu’une fois que l’utilisateur a envoyé un message à l’entreprise. Ce n’est qu’une fois que l’utilisateur a envoyé un message à l’entreprise que celle-ci est autorisée à lui envoyer des messages multimédias ou des SMS pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, la conversation doit être relancée. Pour en savoir plus sur les conversations, consultez la définition sur le site Plateforme WhatsApp Business.
(Option 1) Lancer une conversation à partir de l’entreprise : Envoyer un modèle de message
Lancez une conversation en envoyant un message modèle.
Commencez par créer un MessageTemplate en utilisant les valeurs d’un modèle.
Remarque
Pour vérifier les modèles disponibles, consultez les instructions sur Modèles de liste. Si vous n’avez pas de modèle, passez à l’Option 2.
Voici la création de MessageTemplate à partir d’un modèle par défaut, sample_template
.
Si vous n’avez pas accès à sample_template
, passez à l’Option 2. Les utilisateurs avancés peuvent consulter la page Modèles pour découvrir comment envoyer un autre modèle avec l’option 1.
Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des modèles de messages WhatsApp aux utilisateurs de WhatsApp. Pour envoyer un modèle de message, vous devez :
- NotificationMessagesClient authentifié
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Détails du modèle
- Un nom comme « exemple de modèle »
- Une langue comme « en_us »
- Paramètres le cas échéant
// Assemble the template content
string templateName = "sample_template";
string templateLanguage = "en_us";
var messageTemplate = new MessageTemplate(templateName, templateLanguage);
Pour obtenir plus d’exemples sur l’assemblage de votre MessageTemplate et la création de votre propre modèle, consultez la ressource suivante :
Pour plus d’informations sur les exigences WhatsApp relatives aux modèles, consultez les informations de référence de l’API WhatsApp Business Platform :
Assemblez puis envoyez le modèle de message :
// Assemble template message
var templateContent =
new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);
// Send template message
Response<SendMessageResult> sendTemplateMessageResult =
await notificationMessagesClient.SendAsync(templateContent);
À présent, l’utilisateur doit répondre au modèle de message. À partir du compte d’utilisateur WhatsApp, répondez au message modèle reçu du compte WhatsApp Business. Le contenu du message n’a pas d’importance pour ce scénario.
Important
Le destinataire doit répondre au message modèle pour lancer la conversation avant que le message textuel ou multimédia puisse être remis au destinataire.
(Option 2) Lancer la conversation à partir de l’utilisateur
L’autre option pour lancer une conversation entre un compte WhatsApp Business et un utilisateur WhatsApp est de laisser l’utilisateur lancer la conversation. Pour ce faire, à partir de votre compte WhatsApp personnel, envoyez un message à votre numéro professionnel (ID d’expéditeur).
Envoyer un SMS à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des messages textes WhatsApp, lancés par des utilisateurs WhatsApp. Pour envoyer un message texte, vous devez :
- NotificationMessagesClient authentifié
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Corps/texte du message à envoyer
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Dans cet exemple, nous répondons à l’utilisateur WhatsApp avec le texte « Merci pour vos commentaires.\n Du SDK de Messagerie de Notification ».
Assemblez puis envoyez le SMS :
// Assemble text message
var textContent =
new TextNotificationContent(channelRegistrationId, recipientList, "Thanks for your feedback.\n From Notification Messaging SDK");
// Send text message
Response<SendMessageResult> sendTextMessageResult =
await notificationMessagesClient.SendAsync(textContent);
Envoyer un message multimédia à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des messages multimédias WhatsApp aux utilisateurs de WhatsApp. Pour envoyer un message multimédia incorporé, vous avez besoin des éléments suivants :
- NotificationMessagesClient authentifié
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Uri des médias
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Important
À partir de la version 1.1.0 du SDK MediaNotificationContent
, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent
pour envoyer des images et à explorer d'autres classes spécifiques au contenu pour d'autres types de médias tels que DocumentNotificationContent
, VideoNotificationContent
, et AudioNotificationContent
.
Vous trouverez ci-dessous des exemples d'extraits de code permettant d'envoyer différents types de messages multimédias, notamment des images, des documents, des vidéos et des fichiers audio.
Envoi d'un contenu d'image
Assemblez le message de l'image :
var imageLink = new Uri("https://example.com/image.jpg");
var imageNotificationContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageLink)
{
Caption = "Check out this image."
};
Envoyez le message image :
var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);
Envoi d'un document
Assemblez le contenu du document :
var documentLink = new Uri("https://example.com/document.pdf");
var documentNotificationContent = new DocumentNotificationContent(channelRegistrationId, recipientList, documentLink)
{
Caption = "Check out this document.",
FileName = "document.pdf"
};
Envoyez le message du document :
var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);
Envoi d'un contenu vidéo
Assemblez le message vidéo :
var videoLink = new Uri("https://example.com/video.mp4");
var videoNotificationContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoLink)
{
Caption = "Check out this video."
};
Envoyez le message vidéo :
var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);
Envoi d'un contenu audio
Assemblez le message audio :
var audioLink = new Uri("https://example.com/audio.mp3");
var audioNotificationContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioLink);
Envoyez le message audio :
var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);
Exécuter le code
Générez et exécutez votre programme.
Pour envoyer un SMS ou un message multimédia à un utilisateur WhatsApp, il doit y avoir une conversation active entre le compte WhatsApp Business et l’utilisateur WhatsApp.
Si vous n’avez pas de conversation active, pour les besoins de ce guide de démarrage rapide, vous devez ajouter une attente entre l’envoi du modèle de message et l’envoi du SMS. Ce délai supplémentaire vous donne suffisamment de temps pour répondre à l’entreprise sur le compte WhatsApp de l’utilisateur. Pour référence, l’exemple complet fourni dans Exemple de code affiche une invite d’entrée utilisateur manuelle avant d’envoyer le message suivant.
En cas de réussite, vous recevez trois messages sur le compte WhatsApp de l’utilisateur.
- Pour compiler votre code, appuyez sur Ctrl+F7.
- Pour exécuter le programme sans débogage, appuyez sur Ctrl+F5.
Exemple de code complet
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Azure;
using Azure.Communication.Messages;
namespace AdvancedMessagingQuickstart
{
class Program
{
public static async Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Send WhatsApp Messages\n");
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
NotificationMessagesClient notificationMessagesClient =
new NotificationMessagesClient(connectionString);
var channelRegistrationId = new Guid("<Your Channel ID>");
var recipientList = new List<string> { "<Recipient's WhatsApp Phone Number>" };
// Send sample template sample_template
string templateName = "sample_template";
string templateLanguage = "en_us";
MessageTemplate sampleTemplate = new MessageTemplate(templateName, templateLanguage);
TemplateNotificationContent templateContent =
new TemplateNotificationContent(channelRegistrationId, recipientList, sampleTemplate);
Response<SendMessageResult> sendTemplateMessageResult =
await notificationMessagesClient.SendAsync(templateContent);
PrintResult(sendTemplateMessageResult);
Console.WriteLine("Template message sent.\nWait until the WhatsApp user responds " +
"to the template message, then press any key to continue.\n");
Console.ReadKey();
// Send a text message
string messageText = "Thanks for your feedback.";
TextNotificationContent textContent =
new TextNotificationContent(channelRegistrationId, recipientList, messageText);
Response<SendMessageResult> sendTextMessageResult =
await notificationMessagesClient.SendAsync(textContent);
PrintResult(sendTextMessageResult);
Console.WriteLine($"Text message sent to my phoneNumber.\nPress any key to continue.\n");
Console.ReadKey();
// Send a media message
Uri uri = new Uri("https://aka.ms/acsicon1");
ImageNotificationContent imageContent =
new ImageNotificationContent(channelRegistrationId, recipientList, uri);
Response<SendMessageResult> sendMediaMessageResult =
await notificationMessagesClient.SendAsync(imageContent);
PrintResult(sendMediaMessageResult);
Console.WriteLine("Media message sent.\nPress any key to exit.\n");
Console.ReadKey();
}
public static void PrintResult(Response<SendMessageResult> result)
{
Console.WriteLine($"Response: {result.GetRawResponse().Status} " +
$"({result.GetRawResponse().ReasonPhrase})");
Console.WriteLine($"Date: " +
$"{result.GetRawResponse().Headers.First(header => header.Name == "Date").Value}");
Console.WriteLine($"ClientRequestId: {result.GetRawResponse().ClientRequestId}");
Console.WriteLine($"MS-CV: " +
$"{result.GetRawResponse().Headers.First(header => header.Name == "MS-CV").Value}");
foreach (var receipts in result.Value.Receipts)
{
Console.WriteLine($"MessageId: {receipts.MessageId}");
}
Console.WriteLine($"\n");
}
}
}
Prérequis
Compte WhatsApp Business inscrit auprès de votre ressource Azure Communication Services
Numéro de téléphone WhatsApp actif pour recevoir des messages
Kit de développement Java (JDK)version 8 ou ultérieure
Configuration
Pour configurer un environnement afin d’envoyer des messages, effectuez les étapes décrites dans les sections suivantes.
Créer une application Java
Ouvrez votre terminal ou votre fenêtre Commande, puis accédez au répertoire dans lequel vous souhaitez créer votre application Java. Exécutez la commande suivante pour générer le projet Java à partir du modèle maven-archetype-quickstart.
mvn archetype:generate -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart" -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeVersion="1.4" -DinteractiveMode="false"
L’objectif generate
crée un répertoire qui porte le même nom que la valeur artifactId
. Sous ce répertoire, le répertoire src/main/java contient le code source du projet, le répertoire src/test/java contient la source de test et le fichier pom.xml est le modèle objet du projet (POM, Project Object Model).
Installer le package
Ouvrez le fichier pom.xml dans votre éditeur de texte. Ajoutez l’élément dépendance suivant au groupe de dépendances.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-messages</artifactId>
<version>1.0.0</version>
</dependency>
Configurer le framework d’application
Ouvrez /src/main/java/com/communication/quickstart/App.java dans un éditeur de texte, ajoutez des directives d’importation, puis supprimez l’instruction System.out.println("Hello world!");
:
package com.communication.quickstart;
import com.azure.communication.messages.*;
import com.azure.communication.messages.models.*;
import java.util.ArrayList;
import java.util.List;
public class App
{
public static void main( String[] args )
{
// Quickstart code goes here.
}
}
Modèle objet
Les classes et interfaces suivantes gèrent certaines des principales fonctionnalités du kit de développement logiciel (SDK) Messagerie avancée Azure Communication Services pour Java.
Nom | Description |
---|---|
NotificationMessagesClientBuilder | Cette classe crée le client de messages de notification. Vous lui fournissez un point de terminaison et des informations d’identification. |
NotificationMessagesClient | Cette classe est nécessaire pour envoyer des messages WhatsApp et télécharger des fichiers multimédias. |
NotificationMessagesAsyncClient | Cette classe est nécessaire pour envoyer des messages WhatsApp et télécharger des fichiers multimédias de manière asynchrone. |
SendMessageResult | Cette classe contient le résultat du service Messagerie avancée pour l’envoi d’un message de notification. |
MessageTemplateClientBuilder | Cette classe crée le client de modèle de message. Vous lui fournissez un point de terminaison et des informations d’identification. |
MessageTemplateClient | Cette classe est nécessaire pour obtenir la liste de modèles WhatsApp. |
MessageTemplateAsyncClient | Cette classe est nécessaire pour obtenir la liste de modèles WhatsApp de manière asynchrone. |
Exemples de code
Suivez ces étapes pour ajouter les extraits de code nécessaires à la fonction principale de votre fichier App.java.
- Authentifier le client
- Définir un ID d’inscription de canal
- Définir la liste des destinataires
- Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
- Envoyer un SMS à un utilisateur WhatsApp
- Envoyer un message multimédia à un utilisateur WhatsApp
Authentifier le client
Il existe différentes options disponibles pour authentifier un client de message :
Pour authentifier un client, vous instanciez un NotificationMessagesClient
ou MessageTemplateClient
avec votre chaîne de connexion. Vous pouvez aussi initialiser le client avec n’importe quel client HTTP personnalisé qui implémente l’interface com.azure.core.http.HttpClient
.
Par souci de simplicité, ce guide de démarrage rapide utilise une chaîne de connexion pour s’authentifier. Dans les environnements de production, nous vous recommandons d’utiliser des principaux de service.
Obtenez la chaîne de connexion de votre ressource Azure Communication Services dans le portail Azure. Sur la gauche, accédez à l’onglet Keys
. Copiez le champ Connection string
pour le Primary key
. La chaîne de connexion est au format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Définissez la variable d’environnement COMMUNICATION_SERVICES_CONNECTION_STRING
sur la valeur de votre chaîne de connexion.
Ouvrez une fenêtre de console et entrez la commande suivante :
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Pour plus d’informations sur la façon de définir une variable d’environnement pour votre système, suivez les étapes décrites dans Stocker votre chaîne de connexion dans une variable d’environnement.
Pour instancier un NotificationMessagesClient, ajoutez le code suivant à la méthode main
:
// You can get your connection string from your resource in the Azure portal.
String connectionString = System.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING");
NotificationMessagesClient notificationClient = new NotificationMessagesClientBuilder()
.connectionString(connectionString)
.buildClient();
Définir un ID d’inscription de canal
Le GUID de l’ID d’inscription de canal a été créé pendant l’inscription du canal. Vous pouvez le rechercher dans le portail sous l’onglet Canaux de votre ressource Azure Communication Services.
Attribuez-le à une variable appelée channelRegistrationId.
String channelRegistrationId = "<your channel registration id GUID>";
Définir la liste des destinataires
Vous devez fournir un numéro de téléphone réel associé à un compte WhatsApp. Ce compte WhatsApp reçoit les messages textuels et multimédias envoyés dans ce guide de démarrage rapide. Pour ce guide de démarrage rapide, ce numéro de téléphone peut être votre numéro de téléphone personnel.
Le numéro de téléphone du destinataire ne peut pas être le numéro de téléphone professionnel (ID d’expéditeur) associé à l’inscription du canal WhatsApp. L’ID d’expéditeur s’affiche comme étant l’expéditeur des messages textuels et multimédias envoyés au destinataire.
Le numéro de téléphone doit inclure le code du pays. Pour plus d’informations sur la mise en forme des numéros de téléphone, consultez la documentation WhatsApp sur les Formats des numéros de téléphone.
Remarque
Un seul numéro de téléphone est actuellement pris en charge dans la liste des destinataires.
Créez la liste des destinataires de la façon suivante :
List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");
Exemple :
// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");
Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
Les conversations entre un compte WhatsApp Business et un utilisateur WhatsApp peuvent être lancées de deux manières :
- L’entreprise envoie un message modèle à l’utilisateur WhatsApp.
- L’utilisateur WhatsApp envoie n’importe quel message au numéro professionnel.
Quelle que soit la façon dont la conversation a été démarrée, une entreprise ne peut envoyer des modèles de messages qu’une fois que l’utilisateur a envoyé un message à l’entreprise. Ce n’est qu’une fois que l’utilisateur a envoyé un message à l’entreprise que celle-ci est autorisée à lui envoyer des messages multimédias ou des SMS pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, la conversation doit être relancée. Pour en savoir plus sur les conversations, consultez la définition sur le site Plateforme WhatsApp Business.
(Option 1) Lancer une conversation à partir de l’entreprise : Envoyer un modèle de message
Lancez une conversation en envoyant un message modèle.
Commencez par créer un MessageTemplate en utilisant les valeurs d’un modèle.
Remarque
Pour vérifier les modèles disponibles, consultez les instructions sur Modèles de liste. Si vous n’avez pas de modèle, passez à l’Option 2.
Voici la création de MessageTemplate à partir d’un modèle par défaut, sample_template
.
Si vous n’avez pas accès à sample_template
, passez à l’Option 2. Les utilisateurs avancés peuvent consulter la page Modèles pour découvrir comment envoyer un autre modèle avec l’option 1.
Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des modèles de messages Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des modèles de messages, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Détails du modèle
- Un nom comme « exemple de modèle »
- Une langue comme « en_us »
- Paramètres le cas échéant
// Assemble the template content
String templateName = "sample_template";
String templateLanguage = "en_us";
MessageTemplate messageTemplate = new MessageTemplate(templateName, templateLanguage);
// Assemble template message
TemplateNotificationContent templateContent = new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);
// Send template message
SendMessageResult templateMessageResult = notificationClient.send(templateContent);
// Process result
for (MessageReceipt messageReceipt : templateMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
À présent, l’utilisateur doit répondre au modèle de message. À partir du compte d’utilisateur WhatsApp, répondez au message modèle reçu du compte WhatsApp Business. Le contenu du message n’a pas d’importance pour ce scénario.
Important
Le destinataire doit répondre au message modèle pour lancer la conversation avant que le message textuel ou multimédia puisse être remis au destinataire.
(Option 2) Lancer la conversation à partir de l’utilisateur
L’autre option pour lancer une conversation entre un compte WhatsApp Business et un utilisateur WhatsApp est de laisser l’utilisateur lancer la conversation. Pour ce faire, à partir de votre compte WhatsApp personnel, envoyez un message à votre numéro professionnel (ID d’expéditeur).
Envoyer un SMS à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des messages textuels Whatsapp, lancés par des utilisateurs Whatsapp. Pour envoyer des messages textuels, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Corps/texte du message à envoyer
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Dans cet exemple, nous répondons à l’utilisateur WhatsApp avec le texte « Merci pour vos commentaires.\n Du SDK de Messagerie de Notification ».
Assemblez puis envoyez le SMS :
// Assemble text message
TextNotificationContent textContent = new TextNotificationContent(channelRegistrationId, recipientList, "“Thanks for your feedback.\n From Notification Messaging SDK");
// Send text message
SendMessageResult textMessageResult = notificationClient.send(textContent);
// Process result
for (MessageReceipt messageReceipt : textMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Envoyer un message multimédia à un utilisateur WhatsApp
Messages SDK permet à Contoso d'envoyer des messages multimédias (image, vidéo, audio ou document) aux utilisateurs de WhatsApp. Pour envoyer un message multimédia incorporé, vous avez besoin des éléments suivants :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- URL de l'image, de la vidéo, du document ou du support audio
Important
Pour envoyer un message multimédia à un utilisateur WhatsApp, l’utilisateur WhatsApp doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Important
À partir de la version 1.1.0 du SDK MediaNotificationContent
, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent
pour envoyer des images et à explorer d'autres classes spécifiques au contenu pour d'autres types de médias tels que DocumentNotificationContent
, VideoNotificationContent
, et AudioNotificationContent
.
Envoi d'un message image
Assemblez puis envoyez le message image :
// Assemble image message
String imageUrl = "https://example.com/image.jpg";
ImageNotificationContent imageContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageUrl);
// Send image message
SendMessageResult imageMessageResult = notificationClient.send(imageContent);
// Process result
for (MessageReceipt messageReceipt : imageMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Envoi d'un message vidéo
Assemblez puis envoyez le message vidéo :
// Assemble video message
String videoUrl = "https://example.com/video.mp4";
VideoNotificationContent videoContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoUrl);
// Send video message
SendMessageResult videoMessageResult = notificationClient.send(videoContent);
// Process result
for (MessageReceipt messageReceipt : videoMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Envoi d'un message audio
Assemblez puis envoyez le message audio :
// Assemble audio message
String audioUrl = "https://example.com/audio.mp3";
AudioNotificationContent audioContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioUrl);
// Send audio message
SendMessageResult audioMessageResult = notificationClient.send(audioContent);
// Process result
for (MessageReceipt messageReceipt : audioMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Envoi d'un message de document
Assemblez puis envoyer le message du document :
// Assemble document message
String docUrl = "https://example.com/document.pdf";
DocumentNotificationContent docContent = new DocumentNotificationContent(channelRegistrationId, recipientList, docUrl);
// Send document message
SendMessageResult docMessageResult = notificationClient.send(docContent);
// Process result
for (MessageReceipt messageReceipt : docMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Exécuter le code
Accédez au répertoire contenant le fichier pom.xml, puis compilez le projet à l’aide de la commande
mvn
.mvn compile
Exécutez l’application en exécutant la commande
mvn
suivante.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Exemple de code complet
Vous trouverez le code finalisé pour ce guide de démarrage rapide sur GitHub.
Prérequis
Compte WhatsApp Business inscrit auprès de votre ressource Azure Communication Services
Numéro de téléphone WhatsApp actif pour recevoir des messages
Node.js versions Active LTS et Maintenance LTS (8.11.1 et 10.14.1 recommandées).
- Dans une fenêtre de terminal ou de commande, exécutez
node --version
pour vérifier que Node.js est installé.
- Dans une fenêtre de terminal ou de commande, exécutez
Configuration
Pour configurer un environnement afin d’envoyer des messages, effectuez les étapes décrites dans les sections suivantes.
Création d’une application Node.js
Créez un répertoire pour votre application et accédez-y en ouvrant votre fenêtre de terminal ou de commande, puis exécutez la commande suivante.
mkdir advance-messages-quickstart && cd advance-messages-quickstart
Exécutez la commande suivante pour créer un fichier package.json avec des paramètres par défaut.
npm init -y
Utilisez un éditeur de texte pour créer un fichier nommé send-messages.js dans le répertoire racine du projet.
Ajoutez l’extrait de code suivant au fichier send-messages.js.
async function main() { // Quickstart code goes here. } main().catch((error) => { console.error("Encountered an error while sending message: ", error); process.exit(1); });
Dans les sections suivantes, vous ajoutez tout le code source pour ce guide de démarrage rapide au fichier send-messages.js que vous avez créé.
Installer le package
Utilisez la commande npm install
pour installer le kit SDK Messagerie avancée Azure Communication Services pour JavaScript.
npm install @azure-rest/communication-messages --save
L’option --save
liste la bibliothèque comme dépendance dans votre fichier package.json.
Modèle objet
Les classes et interfaces suivantes gèrent certaines des principales fonctionnalités du kit de développement logiciel (SDK) Messagerie avancée Azure Communication Services pour JavaScript.
Nom | Description |
---|---|
MessageClient | Cette classe se connecte à votre ressource Azure Communication Services. Elle envoie les messages. |
MessageTemplate | Cette classe définit le modèle que vous utilisez et le contenu des propriétés du modèle pour votre message. |
Exemples de code
Suivez ces étapes pour ajouter les extraits de code nécessaires à la fonction principale de votre fichier send-messages.js.
- Authentifier le client
- Définir un ID d’inscription de canal
- Définir la liste des destinataires
- Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
- Envoyer un SMS à un utilisateur WhatsApp
- Envoyer un message multimédia à un utilisateur WhatsApp
Authentifier le client
Le code suivant récupère la chaîne de connexion de la ressource à partir d’une variable d’environnement nommée COMMUNICATION_SERVICES_CONNECTION_STRING
en utilisant le package dotenv.
Par souci de simplicité, ce guide de démarrage rapide utilise une chaîne de connexion pour s’authentifier. Dans les environnements de production, nous vous recommandons d’utiliser des principaux de service.
Obtenez la chaîne de connexion de votre ressource Azure Communication Services dans le portail Azure. Sur la gauche, accédez à l’onglet Keys
. Copiez le champ Connection string
pour le Primary key
. La chaîne de connexion est au format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Définissez la variable d’environnement COMMUNICATION_SERVICES_CONNECTION_STRING
sur la valeur de votre chaîne de connexion.
Ouvrez une fenêtre de console et entrez la commande suivante :
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Pour plus d’informations sur la façon de définir une variable d’environnement pour votre système, suivez les étapes décrites dans Stocker votre chaîne de connexion dans une variable d’environnement.
Pour instancier un MessageClient, ajoutez le code suivant à la méthode Main
:
const MessageClient = require("@azure-rest/communication-messages").default;
// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];
// Instantiate the client
const client = MessageClient(connectionString);
Définir un ID d’inscription de canal
Le GUID de l’ID d’inscription de canal a été créé pendant l’inscription du canal. Vous pouvez le rechercher dans le portail sous l’onglet Canaux de votre ressource Azure Communication Services.
Attribuez-le à une variable appelée channelRegistrationId.
const channelRegistrationId = "<your channel registration id GUID>";
Définir la liste des destinataires
Vous devez fournir un numéro de téléphone réel associé à un compte WhatsApp. Ce compte WhatsApp reçoit les modèles de messages, les messages multimédias et les SMS envoyés dans ce guide de démarrage rapide. Pour ce guide de démarrage rapide, ce numéro de téléphone peut être votre numéro de téléphone personnel.
Le numéro de téléphone du destinataire ne peut pas être le numéro de téléphone professionnel (ID d’expéditeur) associé à l’inscription du canal WhatsApp. L’ID d’expéditeur s’affiche comme étant l’expéditeur des messages textuels et multimédias envoyés au destinataire.
Le numéro de téléphone doit inclure le code du pays. Pour plus d’informations sur la mise en forme des numéros de téléphone, consultez la documentation WhatsApp sur les Formats des numéros de téléphone.
Remarque
Un seul numéro de téléphone est actuellement pris en charge dans la liste des destinataires.
Créez la liste des destinataires de la façon suivante :
const recipientList = ["<to WhatsApp phone number>"];
Exemple :
// Example only
const recipientList = ["+14255550199"];
Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
Les conversations entre un compte WhatsApp Business et un utilisateur WhatsApp peuvent être lancées de deux manières :
- L’entreprise envoie un message modèle à l’utilisateur WhatsApp.
- L’utilisateur WhatsApp envoie n’importe quel message au numéro professionnel.
Quelle que soit la façon dont la conversation a été démarrée, une entreprise ne peut envoyer des modèles de messages qu’une fois que l’utilisateur a envoyé un message à l’entreprise. Ce n’est qu’une fois que l’utilisateur a envoyé un message à l’entreprise que celle-ci est autorisée à lui envoyer des messages multimédias ou des SMS pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, la conversation doit être relancée. Pour en savoir plus sur les conversations, consultez la définition sur le site Plateforme WhatsApp Business.
(Option 1) Lancer une conversation à partir de l’entreprise : Envoyer un modèle de message
Lancez une conversation en envoyant un message modèle.
Commencez par créer un MessageTemplate en utilisant les valeurs d’un modèle.
Remarque
Pour vérifier les modèles disponibles, consultez les instructions sur Modèles de liste. Si vous n’avez pas de modèle, passez à l’Option 2.
Voici la création de MessageTemplate à partir d’un modèle par défaut, sample_template
.
Si vous n’avez pas accès à sample_template
, passez à l’Option 2. Les utilisateurs avancés peuvent consulter la page Modèles pour découvrir comment envoyer un autre modèle avec l’option 1.
Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des modèles de messages Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des modèles de messages, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Détails du modèle
- Un nom comme « exemple de modèle »
- Une langue comme « en_us »
- Paramètres le cas échéant
// Assemble the template content
const template = {
name: "sample_template",
language: "en_US"
};
Pour obtenir plus d’exemples sur l’assemblage de votre MessageTemplate et la création de votre propre modèle, consultez la ressource suivante :
Pour plus d’informations sur les exigences WhatsApp relatives aux modèles, consultez les informations de référence de l’API WhatsApp Business Platform :
// Send template message
const templateMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "template",
template: template
}
});
// Process result
if (templateMessageResult.status === "202") {
templateMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
À présent, l’utilisateur doit répondre au modèle de message. À partir du compte d’utilisateur WhatsApp, répondez au message modèle reçu du compte WhatsApp Business. Le contenu du message n’a pas d’importance pour ce scénario.
Important
Le destinataire doit répondre au message modèle pour lancer la conversation avant que le message textuel ou multimédia puisse être remis au destinataire.
(Option 2) Lancer la conversation à partir de l’utilisateur
L’autre option pour lancer une conversation entre un compte WhatsApp Business et un utilisateur WhatsApp est de laisser l’utilisateur lancer la conversation. Pour ce faire, à partir de votre compte WhatsApp personnel, envoyez un message à votre numéro professionnel (ID d’expéditeur).
Envoyer un SMS à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des messages textuels Whatsapp, lancés par des utilisateurs Whatsapp. Pour envoyer des messages textuels, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Corps/texte du message à envoyer
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Dans cet exemple, nous répondons à l’utilisateur WhatsApp avec le texte « Merci pour vos commentaires.\n Du SDK de Messagerie de Notification ».
Assemblez et envoyez le message multimédia :
// Send text message
const textMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "text",
content: "Thanks for your feedback.\n From Notification Messaging SDK"
}
});
// Process result
if (textMessageResult.status === "202") {
textMessageResult.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 à un utilisateur WhatsApp
Messages SDK permet à Contoso d'envoyer des messages multimédias (image, vidéo, audio ou document) aux utilisateurs de WhatsApp. Pour envoyer un message multimédia incorporé, vous avez besoin des éléments suivants :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- URL de l'image, de la vidéo, du document ou du support audio
Important
Pour envoyer un message multimédia à un utilisateur WhatsApp, l’utilisateur WhatsApp doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Important
À partir de la version 2.0.0 du SDK MediaNotificationContent
, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent
pour envoyer des images et à explorer d'autres classes spécifiques au contenu pour d'autres types de médias tels que DocumentNotificationContent
, VideoNotificationContent
, et AudioNotificationContent
.
Envoi de contenu d'image
Pour envoyer un message image, fournissez une URL vers une image. Par exemple,
const url = "https://example.com/image.jpg";
Assemblez et envoyez le message multimédia :
// Send image message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "image",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Envoi de contenu vidéo
Pour envoyer un message vidéo, fournissez une URL vers une vidéo. Par exemple,
const url = "https://example.com/video.mp4";
Assemblez et envoyez le message vidéo :
// Send video message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "video",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Envoi de contenu audio
Pour envoyer un message audio, fournissez une URL vers un fichier audio. Par exemple,
const url = "https://example.com/audio.mp3";
Assemblez et envoyer le message audio :
// Send audio message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "audio",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Envoi du contenu du document
Pour envoyer un message de document, fournissez une URL vers un document. Par exemple,
const url = "https://example.com/document.pdf";
Assemblez et envoyer le message du document :
// Send document message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "document",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Exécuter le code
Utilisez la commande node pour exécuter le code que vous avez ajouté au fichier send-messages.js.
node ./send-messages.js
Exemple de code complet
Vous pouvez télécharger l’exemple d’application sur GitHub.
Prérequis
Compte WhatsApp Business inscrit auprès de votre ressource Azure Communication Services.
Numéro de téléphone WhatsApp actif devant recevoir des messages.
Python 3.7+ pour votre système d’exploitation.
Configuration
Créer une application Python
Dans une fenêtre de terminal ou de console, créez un dossier pour votre application et accédez-y.
mkdir messages-quickstart && cd messages-quickstart
Installer le package
Vous devez utiliser la bibliothèque de client Azure Communication Messages pour Python version 1.0.0 ou ultérieure.
À partir de l'invite de commandes, exécutez la commande suivante :
pip install azure-communication-messages
Configurer le framework d’application
Créez un nouveau fichier appelé messages-quickstart.py
et ajoutez la structure de programme de base.
type nul > messages-quickstart.py
Structure de programme basique
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart")
if __name__ == '__main__':
messages = MessagesQuickstart()
Modèle objet
Les classes et les interfaces suivantes gèrent certaines des principales fonctionnalités du SDK Azure Communication Services Messages pour Python.
Nom | Description |
---|---|
NotificationMessagesClient | Cette classe se connecte à votre ressource Azure Communication Services. Elle envoie les messages. |
MessageTemplate | Cette classe définit le modèle que vous utilisez et le contenu des propriétés du modèle pour votre message. |
TemplateNotificationContent | Cette classe définit le « qui » et le « quoi » du modèle de message que vous envisagez d’envoyer. |
TextNotificationContent | Cette classe définit le « qui » et le « quoi » du message texte que vous envisagez d’envoyer. |
ImageNotificationContent | Cette classe définit le « qui » et le « quoi » du message d’image multimédia que vous envisagez d’envoyer. |
DocumentNotificationContent | Cette classe définit le « qui » et le « quoi » du message multimédia du document que vous avez l'intention d'envoyer. |
VideoNotificationContent | Cette classe définit le « qui » et le « quoi » du message multimédia vidéo que vous souhaitez envoyer. |
AudioNotificationContent | Cette classe définit le « qui » et le « quoi » du message multimédia audio que vous avez l'intention d'envoyer. |
Exemples de code
Suivez ces étapes pour ajouter les extraits de code nécessaires au programme python messages-quickstart.py.
- Authentifier le client
- Définir un ID d’inscription de canal
- Définir la liste des destinataires
- Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
- Envoyer un SMS à un utilisateur WhatsApp
- Envoyer un message multimédia à un utilisateur WhatsApp
Authentifier le client
L’envoi de messages est effectué à l’aide de NotificationMessagesClient. NotificationMessagesClient est authentifié à l’aide de la chaîne de connexion acquise à partir d’une ressource Azure Communication Services dans le portail Azure. Pour plus d’informations sur les chaînes de connexion, consultez Accéder à vos chaînes de connexion et points de terminaison de service à l’aide d’Azure CLI.
Obtenez la chaîne de connexion à la ressource de communication Azure à partir du Portail Microsoft Azure comme indiqué dans la capture d’écran. Sur la gauche, accédez à l’onglet Keys
. Copiez le champ Connection string
de la clé primaire. La chaîne de connexion est au format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Définissez la variable d’environnement COMMUNICATION_SERVICES_CONNECTION_STRING
sur la valeur de votre chaîne de connexion.
Ouvrez une fenêtre de console et entrez la commande suivante :
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Après avoir ajouté la variable d’environnement, vous devrez peut-être redémarrer tous les programmes en cours d’exécution qui devront la lire, y compris la fenêtre de console. Par exemple, si vous utilisez Visual Studio comme éditeur, redémarrez Visual Studio avant d’exécuter l’exemple.
Pour plus d’informations sur la façon de définir une variable d’environnement pour votre système, suivez les étapes décrites dans Stocker votre chaîne de connexion dans une variable d’environnement.
# Get a connection string to our Azure Communication Services resource.
connection_string = os.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING")
def send_template_message(self):
from azure.communication.messages import NotificationMessagesClient
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
Définir un ID d’inscription de canal
Le GUID de l’ID d’inscription de canal a été créé pendant l’inscription du canal. Vous pouvez le rechercher dans le portail sous l’onglet Canaux de votre ressource Azure Communication Services.
Attribuez-le à une variable appelée channelRegistrationId.
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")
Définir la liste des destinataires
Vous devez fournir un numéro de téléphone réel associé à un compte WhatsApp. Ce compte WhatsApp reçoit les modèles de messages, les messages multimédias et les SMS envoyés dans ce guide de démarrage rapide. Pour ce guide de démarrage rapide, ce numéro de téléphone peut être votre numéro de téléphone personnel.
Le numéro de téléphone du destinataire ne peut pas être le numéro de téléphone professionnel (ID d’expéditeur) associé à l’inscription du canal WhatsApp. L’ID d’expéditeur s’affiche comme étant l’expéditeur des messages textuels et multimédias envoyés au destinataire.
Le numéro de téléphone doit inclure le code du pays. Pour plus d’informations sur la mise en forme des numéros de téléphone, consultez la documentation WhatsApp sur les Formats des numéros de téléphone.
Remarque
Un seul numéro de téléphone est actuellement pris en charge dans la liste des destinataires.
Définissez la liste des destinataires de la façon suivante :
phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")
Exemple d’utilisation :
# Example only
to=[self.phone_number],
Commencer à envoyer des messages entre une entreprise et un utilisateur WhatsApp
Les conversations entre un compte WhatsApp Business et un utilisateur WhatsApp peuvent être lancées de deux manières :
- L’entreprise envoie un message modèle à l’utilisateur WhatsApp.
- L’utilisateur WhatsApp envoie n’importe quel message au numéro professionnel.
Quelle que soit la façon dont la conversation a été démarrée, une entreprise ne peut envoyer des modèles de messages qu’une fois que l’utilisateur a envoyé un message à l’entreprise. Ce n’est qu’une fois que l’utilisateur a envoyé un message à l’entreprise que celle-ci est autorisée à lui envoyer des messages multimédias ou des SMS pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, la conversation doit être relancée. Pour en savoir plus sur les conversations, consultez la définition sur le site Plateforme WhatsApp Business.
(Option 1) Lancer une conversation à partir de l’entreprise : Envoyer un modèle de message
Lancez une conversation en envoyant un message modèle.
Commencez par créer un MessageTemplate en utilisant les valeurs d’un modèle.
Remarque
Pour vérifier les modèles disponibles, consultez les instructions sur Modèles de liste. Si vous n’avez pas de modèle, passez à l’Option 2.
Voici la création de MessageTemplate à partir d’un modèle par défaut, sample_template
.
Si vous n’avez pas accès à sample_template
, passez à l’Option 2. Les utilisateurs avancés peuvent consulter la page Modèles pour découvrir comment envoyer un autre modèle avec l’option 1.
Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des modèles de messages Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des modèles de messages, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Détails du modèle
- Un nom comme « exemple de modèle »
- Une langue comme « en_us »
- Paramètres le cas échéant
Pour obtenir plus d’exemples sur l’assemblage de votre MessageTemplate et la création de votre propre modèle, consultez la ressource suivante :
Pour plus d’informations sur les exigences WhatsApp relatives aux modèles, consultez les informations de référence de l’API WhatsApp Business Platform :
Pour envoyer un message modèle WhatsApp, ajoutez le code donné dans la fonction send_template_message(self).
input_template: MessageTemplate = MessageTemplate(
name="<<template_name>>",
language="<<template_language>>")
template_options = TemplateNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
template=input_template
)
# calling send() with whatsapp template details
message_responses = messaging_client.send(template_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Templated Message with message id {} was successfully sent to {}."
.format(response.message_id, response.to))
else:
print("Message failed to send")
Ajoutez send_template_message() appel à la méthode principale.
# Calling send_template_message()
messages.send_template_message()
À présent, l’utilisateur doit répondre au modèle de message. À partir du compte d’utilisateur WhatsApp, répondez au message modèle reçu du compte WhatsApp Business. Le contenu du message n’a pas d’importance pour ce scénario.
Important
Le destinataire doit répondre au message modèle pour lancer la conversation avant que le message textuel ou multimédia puisse être remis au destinataire.
(Option 2) Lancer la conversation à partir de l’utilisateur
L’autre option pour lancer une conversation entre un compte WhatsApp Business et un utilisateur WhatsApp est de laisser l’utilisateur lancer la conversation. Pour ce faire, à partir de votre compte WhatsApp personnel, envoyez un message à votre numéro professionnel (ID d’expéditeur).
Envoyer un SMS à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des messages textuels Whatsapp, lancés par des utilisateurs Whatsapp. Pour envoyer des messages textuels, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- Corps/texte du message à envoyer
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Dans cet exemple, nous répondons à l'utilisateur de WhatsApp avec le texte « Merci pour vos commentaires.\n De Notification Messaging SDK. »
def send_text_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TextNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
text_options = TextNotificationContent (
channel_registration_id=self.channelRegistrationId,
to= [self.phone_number],
content="Thanks for your feedback.\n From Notification Messaging SDK",
)
# calling send() with whatsapp message details
message_responses = messaging_client.send(text_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Text Message with message id {} was successfully sent to {}."
.format(response.message_id, response.to))
else:
print("Message failed to send")
Pour exécuter send_text_message(), mettez à jour la méthode principale
#Calling send_text_message()
messages.send_text_message()
Envoyez un message multimédia image à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des images par message Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des images par message, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- MediaUri de l’image
Important
Pour qu’il soit possible d’envoyer un SMS à un utilisateur WhatsApp, celui-ci doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Exemple de media_uri utilisé pour envoyer un message WhatsApp multimédia.
input_media_uri : str = "https://aka.ms/acsicon1"
def send_image_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( ImageNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "https://aka.ms/acsicon1"
image_message_options = ImageNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Image containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Pour exécuter send_text_message(), mettez à jour la méthode principale
# Calling send_image_message()
messages.send_image_message()
Envoyez un message multimédia à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des images par message Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des images par message, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- MediaUri du document
Important
Pour envoyer un message de document à un utilisateur WhatsApp, l’utilisateur WhatsApp doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Exemple de media_uri utilisé pour envoyer un message WhatsApp multimédia.
input_media_uri: str = "##DocumentLinkPlaceholder##"
def send_document_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( DocumentNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##DocumentLinkPlaceholder##"
documents_options = DocumentNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
caption="Hello World via Advanced Messaging SDK.This is document message",
file_name="Product roadmap timeline.pptx",
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(documents_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Document containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Pour exécuter send_text_message(), mettez à jour la méthode principale
# Calling send_image_message()
messages.send_image_message()
Envoyez un message multimédia audio à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des images par message Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des images par message, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- MediaUri de l'audio
Important
Pour envoyer un message audio à un utilisateur WhatsApp, l’utilisateur WhatsApp doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Exemple de media_uri utilisé pour envoyer un message WhatsApp multimédia.
input_media_uri: str = "##AudioLinkPlaceholder##"
def send_audio_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( AudioNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##AudioLinkPlaceholder##"
audio_options = AudioNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(audio_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Audio containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Pour exécuter send_text_message(), mettez à jour la méthode principale
# Calling send_image_message()
messages.send_image_message()
Envoyez un message vidéo à un utilisateur WhatsApp
Le SDK Messages permet à Contoso d’envoyer des images par message Whatsapp aux utilisateurs de WhatsApp. Pour envoyer des images par message, les informations ci-dessous sont requises :
- ID de canal WhatsApp
- Numéro de téléphone du destinataire en format E16
- MediaUri de la vidéo
Important
Pour envoyer un message vidéo à un utilisateur WhatsApp, l’utilisateur WhatsApp doit d’abord envoyer un message au compte WhatsApp Business. Pour plus d’informations, consultez Commencer à envoyer des messages entre l’entreprise et l’utilisateur WhatsApp.
Exemple de media_uri utilisé pour envoyer un message WhatsApp multimédia.
input_media_uri: str = "##VideoLinkPlaceholder##"
def send_video_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( VideoNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##VideoLinkPlaceholder##"
video_options = VideoNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Video containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Pour exécuter send_text_message(), mettez à jour la méthode principale
# Calling send_image_message()
messages.send_image_message()
Exécuter le code
Pour exécuter le code, vérifiez que vous êtes dans le répertoire où se trouve votre fichier messages-quickstart.py
.
python messages-quickstart.py
Azure Communication Services - Advanced Messages Quickstart
WhatsApp Templated Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
WhatsApp Text Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
WhatsApp Image containing Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
Exemple de code complet
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart using connection string.")
# Advanced Messages SDK implementations goes in this section.
connection_string = os.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING")
phone_number = os.getenv("RECIPIENT_PHONE_NUMBER")
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID")
def send_template_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TemplateNotificationContent , MessageTemplate )
# client creation
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_template: MessageTemplate = MessageTemplate(
name="<<TEMPLATE_NAME>>",
language="<<LANGUAGE>>")
template_options = TemplateNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
template=input_template
)
# calling send() with WhatsApp template details.
message_responses = messaging_client.send(template_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Templated Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_text_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TextNotificationContent )
# client creation
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
text_options = TextNotificationContent (
channel_registration_id=self.channelRegistrationId,
to= [self.phone_number],
content="Hello World via ACS Advanced Messaging SDK.",
)
# calling send() with WhatsApp message details
message_responses = messaging_client.send(text_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Text Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_image_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( ImageNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "https://aka.ms/acsicon1"
image_message_options = ImageNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Image containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_document_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( DocumentNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##DocumentLinkPlaceholder##"
documents_options = DocumentNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
caption="Hello World via Advanced Messaging SDK.This is document message",
file_name="Product roadmap timeline.pptx",
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(documents_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Document containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_audio_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( AudioNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##AudioLinkPlaceholder##"
audio_options = AudioNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(audio_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Audio containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_video_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( VideoNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##VideoLinkPlaceholder##"
video_options = VideoNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Video containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
if __name__ == '__main__':
messages = MessagesQuickstart()
messages.send_template_message()
messages.send_text_message()
messages.send_image_message()
messages.send_document_message()
messages.send_audio_message()
messages.send_video_message()
Remarque
Veuillez mettre à jour toutes les variables d'espace réservé dans le code ci-dessus.
Autres exemples
Vous pouvez consulter et télécharger d’autres exemples de codes pour le SDK Python Messages sur GitHub.
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez testé le SDK Messagerie avancée pour WhatsApp. Vous pouvez ensuite consulter les articles suivants :