Partager via


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

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#.

  1. Ouvrez le Gestionnaire de package NuGet à Project>Manage NuGet Packages....
  2. Recherchez le package Azure.Communication.Messages.
  3. 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

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}.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant le champ « Chaîne de connexion » dans la section « Clé primaire ».

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.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant l’onglet « Chaînes ». L’attention est placée sur l’action de copie du champ « ID de canal ».

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 :

// 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).

Une conversation WhatsApp vue sur le web affichant un message utilisateur envoyé au numéro de compte WhatsApp Business.

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 :

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 :

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.

  1. Pour compiler votre code, appuyez sur Ctrl+F7.
  2. 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

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

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}.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant le champ « Chaîne de connexion » dans la section « Clé primaire ».

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.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant l’onglet « Chaînes ». L’attention est placée sur l’action de copie du champ « ID de canal ».

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 :

// 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).

Une conversation WhatsApp vue sur le web affichant un message utilisateur envoyé au numéro de compte WhatsApp Business.

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 :

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 :

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

  1. Accédez au répertoire contenant le fichier pom.xml, puis compilez le projet à l’aide de la commande mvn.

    mvn compile
    
  2. 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

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

  1. 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
    
  2. Exécutez la commande suivante pour créer un fichier package.json avec des paramètres par défaut.

    npm init -y
    
  3. Utilisez un éditeur de texte pour créer un fichier nommé send-messages.js dans le répertoire racine du projet.

  4. 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

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}.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant le champ « Chaîne de connexion » dans la section « Clé primaire ».

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.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant l’onglet « Chaînes ». L’attention est placée sur l’action de copie du champ « ID de canal ».

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 :

// 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).

Une conversation WhatsApp vue sur le web affichant un message utilisateur envoyé au numéro de compte WhatsApp Business.

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 :

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 :

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

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

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}.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant le champ « Clé primaire » dans la section « Clés ».

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.

Capture d’écran montrant une ressource Azure Communication Services dans le portail Azure, affichant l’onglet « Chaînes ». L’attention est placée sur l’action de copie du champ « ID de canal ».

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 :

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).

Une conversation WhatsApp vue sur le web affichant un message utilisateur envoyé au numéro de compte WhatsApp Business.

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 :

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 :

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 :

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 :

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 :

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 :