Partager via


Envoyer des messages WhatsApp textuels et multimédias à l'aide de la messagerie avancée

Azure Communication Services vous permet d’envoyer et de recevoir des messages WhatsApp. Cet article décrit comment intégrer votre application au Kit de développement logiciel (SDK) Azure Communication Services Advanced Messages pour commencer à envoyer et à recevoir des messages WhatsApp. Le fait d’effectuer les étapes de cet article entraîne un coût minime de quelques centimes de dollar USD ou moins sur votre compte Azure.

Prérequis

Configurer l’environnement

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 votre 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 - Advanced Messages quickstart samples.");

            // Quickstart code goes here
        }
    }
}

Pour utiliser les fonctionnalités de messagerie avancée, ajoutez 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 de la classe Description
NotificationMessagesClient Se connecte à votre ressource Azure Communication Services. Elle envoie les messages.
MessageTemplate Définit le modèle que vous utilisez et le contenu des propriétés du modèle pour votre message.
TemplateNotificationContent Définit le « qui » et le « quoi » du modèle de message que vous envisagez d’envoyer.
TextNotificationContent Définit le « qui » et le « quoi » du message texte que vous envisagez d’envoyer.
ImageNotificationContent Définit le « qui » et le « quoi » du message d’image multimédia que vous envisagez d’envoyer.
DocumentNotificationContent Définit le « qui » et le « quoi » du message multimédia du document que vous avez l'intention d'envoyer.
VideoNotificationContent Définit le « qui » et le « quoi » du message multimédia vidéo que vous souhaitez envoyer.
AudioNotificationContent Définit le « qui » et le « quoi » du message multimédia audio que vous avez l'intention d'envoyer.

Remarque

Pour plus d’informations, consultez la référence Espace de noms Azure.Communication.Messages du kit SDK Azure pour .NET.

Configuration commune

Effectuez les étapes suivantes pour ajouter les extraits de code requis au programme Python messages-quickstart.py.

Authentifier le client

Le Kit de développement logiciel (SDK) Messages utilise NotificationMessagesClient pour envoyer des messages. La méthode NotificationMessagesClient s’authentifie à l’aide de votre chaîne de connexion acquise à partir de la 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.

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

Vous avez créé le GUID de l’ID d’inscription du canal lors de l’inscription au canal. Celui-ci se trouve 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 actif 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 cet exemple, vous pouvez utiliser 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.

Une entreprise ne peut pas lancer une conversation interactive. Une entreprise ne peut envoyer un message interactif qu’après avoir reçu un message de l’utilisateur(-trice). L’entreprise ne peut envoyer des messages interactifs à l’utilisateur(-trice) que pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, seul(e) l’utilisateur(-trice) peut redémarrer la conversation interactive. Pour plus d’informations sur les conversations, consultez la définition sur le site WhatsApp Business Platform.

Pour lancer une conversation interactive à 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.

Exemples de code

Suivez ces étapes pour ajouter les extraits de code requis à la fonction principale de votre fichier Program.cs.

Important

Pour envoyer un texte ou un message multimédia à un(e) utilisateur(-trice) WhatsApp, l’utilisateur(-trice) 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.

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 :

Dans cet exemple, nous répondons à l’utilisateur(-trice) WhatsApp avec le texte : "Thanks for your feedback.\n From Notification Messaging SDK."

Assemblez et 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);

Envoyez un message multimédia image à un(e) utilisateur(-trice) 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

À partir de la version 1.1.0 du SDK MediaNotificationContent, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent pour envoyer des images. Explorez d’autres classes spécifiques au contenu pour d’autres types de supports tels que DocumentNotificationContent, VideoNotificationContentet AudioNotificationContent.

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

Envoyez 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 :

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

Envoyez un message vidéo à 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 :

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

Envoyez un message multimédia audio à 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 :

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, ajoutez dans cet exemple un délai d'attente entre l’envoi du message type et l'envoi du message texte. 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

Configurer l’environnement

Pour configurer un environnement afin d’envoyer des messages, effectuez les étapes décrites dans les sections suivantes.

Créer une application Java

Ouvrez un terminal ou une Fenêtre Commande, puis accédez au répertoire dans lequel vous voulez 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).

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

Exemples de code

Suivez ces étapes pour ajouter les extraits de code requis à la fonction principale de votre fichier App.java.

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.

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");

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 :

Dans cet exemple, nous répondons à l’utilisateur(-trice) WhatsApp avec le texte : "Thanks for your feedback.\n From Notification Messaging SDK."

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.

Assemblez et 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());
}

Envoyez un message multimédia image à un(e) utilisateur(-trice) WhatsApp

Le SDK Messages 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

À partir de la version 1.1.0 du SDK MediaNotificationContent, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent pour envoyer des images. Explorez d’autres classes spécifiques au contenu pour d’autres types de supports tels que DocumentNotificationContent, VideoNotificationContentet AudioNotificationContent.

Important

Pour envoyer un message image à un(e) utilisateur(-trice) WhatsApp, l’utilisateur(-trice) 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.

Assemblez et 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());
}

Envoyez un message vidéo à un utilisateur WhatsApp

Le SDK Messages 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 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.

Assemblez et 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());
}

Envoyez un message multimédia audio à un utilisateur WhatsApp

Le SDK Messages 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 audio à un(e) utilisateur(-trice) WhatsApp, l’utilisateur(-trice) 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.

Assemblez et envoyer 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());
}

Envoyez un message multimédia à un utilisateur WhatsApp

Le SDK Messages 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 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.

Assemblez et 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. Ouvrez le répertoire qui contient le pom.xml fichier et 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

Création d’une application Node.js

  1. Créez un répertoire pour votre application et ouvrez-le dans un terminal ou une fenêtre de commande.

  2. Exécutez la commande suivante :

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  3. Exécutez la commande suivante pour créer un fichier package.json avec des paramètres par défaut.

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

  5. 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);
    });
    

Suivez la section suivante pour ajouter votre code source pour cet exemple 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.

Exemples de code

Suivez ces étapes pour ajouter les extraits de code requis à la fonction principale de votre fichier send-messages.js.

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.

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 NotificationClient, ajoutez le code suivant à la méthode Main :

const NotificationClient = require("@azure-rest/communication-messages").default;

// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];

// Instantiate the client
const client = NotificationClient(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"];

Important

Pour envoyer un message à un(e) utilisateur(-trice) WhatsApp, l’utilisateur(-trice) 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.

Envoyer un SMS à un utilisateur WhatsApp

Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des messages textes WhatsApp lorsque l’opération est lancée par des utilisateurs de WhatsApp. Pour envoyer des messages texte :

Dans cet exemple, nous répondons à l’utilisateur(-trice) WhatsApp avec le texte : "Thanks for your feedback.\n From Notification Messaging SDK."

Assemblez et envoyez le SMS :

// 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");
}

Envoyez un message multimédia image à un(e) utilisateur(-trice) WhatsApp

Le SDK Messages 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

À partir de la version 2.0.0 du SDK MediaNotificationContent, les images sont obsolètes. Nous vous encourageons à utiliser ImageNotificationContent pour envoyer des images. Explorez d’autres classes spécifiques au contenu pour d’autres types de supports tels que DocumentNotificationContent, VideoNotificationContentet AudioNotificationContent.

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");
}

Envoyez un message vidéo à un utilisateur WhatsApp

Le SDK Messages 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 :

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");
}

Envoyez un message multimédia audio à un utilisateur WhatsApp

Le SDK Messages 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 :

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");
}

Envoyez un message multimédia à un utilisateur WhatsApp

Le SDK Messages 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 :

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 trouverez le code finalisé pour ce guide de démarrage rapide 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 l’ouvrir.

mkdir messages-quickstart && cd messages-quickstart

Installer le package

Utilisez la bibliothèque client Azure Communication Messages pour Python 1.1.0 ou supérieur.

Exécutez la commande suivante à partir d’une invite de commande :

pip install azure-communication-messages

Pour InteractiveMessages, réactions et autocollants, utilisez ci-dessous version bêta :

pip install azure-communication-messages==1.2.0b1

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 de la classe Description
NotificationMessagesClient Se connecte à votre ressource Azure Communication Services. Elle envoie les messages.
MessageTemplate Définit le modèle que vous utilisez et le contenu des propriétés du modèle pour votre message.
TemplateNotificationContent Définit le « qui » et le « quoi » du modèle de message que vous envisagez d’envoyer.
TextNotificationContent Définit le « qui » et le « quoi » du message texte que vous envisagez d’envoyer.
ImageNotificationContent Définit le « qui » et le « quoi » du message d’image multimédia que vous envisagez d’envoyer.
DocumentNotificationContent Définit le « qui » et le « quoi » du message multimédia du document que vous avez l'intention d'envoyer.
VideoNotificationContent Définit le « qui » et le « quoi » du message multimédia vidéo que vous souhaitez envoyer.
AudioNotificationContent Définit le « qui » et le « quoi » du message multimédia audio que vous avez l'intention d'envoyer.

Remarque

Pour plus d’informations, consultez la référence du Kit de développement logiciel (SDK) Azure pour Python package de messages.

Configuration commune

Suivez les étapes suivantes pour ajouter les extraits de code requis au programme messages-quickstart.py python.

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

Vous avez créé le GUID de l’ID d’inscription du canal lors de l’inscription au canal. Celui-ci se trouve 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 actif 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 cet exemple, vous pouvez utiliser 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.

Une entreprise ne peut pas lancer une conversation interactive. Une entreprise ne peut envoyer un message interactif qu’après avoir reçu un message de l’utilisateur(-trice). L’entreprise ne peut envoyer des messages interactifs à l’utilisateur(-trice) que pendant la conversation active. Une fois la fenêtre de conversation de 24 heures expirée, seul(e) l’utilisateur(-trice) peut redémarrer la conversation interactive. Pour plus d’informations sur les conversations, consultez la définition sur le site WhatsApp Business Platform.

Pour lancer une conversation interactive à 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.

Exemples de code

Effectuez les étapes suivantes pour ajouter les extraits de code requis au programme Python messages-quickstart.py.

Envoyer un SMS à un utilisateur WhatsApp

Le Kit de développement logiciel (SDK) Messages permet à Contoso d’envoyer des messages textes WhatsApp lorsque l’opération est lancée par un(e) utilisateur(-trice) de WhatsApp. Pour envoyer des messages texte :

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(-trice) WhatsApp avec le texte : "Thanks for your feedback.\n From 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(e) utilisateur(-trice) WhatsApp

Le Kit de développement logiciel (SDK) Messages permet à Contoso d'envoyer des messages WhatsApp contenant des images aux utilisateurs de WhatsApp. Pour envoyer des messages incorporés d’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 d'utilisation de media_uri lors de l'envoi d'un message WhatsApp sur les médias.

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 Kit de développement logiciel (SDK) Messages permet à Contoso d'envoyer des messages WhatsApp contenant des documents aux utilisateurs de WhatsApp. Pour envoyer des messages incorporés de documents :

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 d'utilisation de media_uri lors de l'envoi d'un message WhatsApp sur les médias.

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 Kit de développement logiciel (SDK) Messages permet à Contoso d'envoyer des messages WhatsApp contenant des images aux utilisateurs de WhatsApp. Pour envoyer des messages incorporés d’audio :

Important

Pour envoyer un message audio à un(e) utilisateur(-trice) WhatsApp, l’utilisateur(-trice) 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 d'utilisation de media_uri lors de l'envoi d'un message WhatsApp sur les médias.

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 Kit de développement logiciel (SDK) Messages permet à Contoso d'envoyer des messages WhatsApp contenant des vidéos aux utilisateurs de WhatsApp. Pour envoyer des messages incorporés de vidéos :

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 d'utilisation de media_uri lors de l'envoi d'un message WhatsApp sur les médias.

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

Remarque

Remplacez toutes les variables d’espace réservé dans l’exemple de code par vos valeurs.

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

Autres exemples

Vous pouvez consulter et télécharger d’autres exemples de codes pour le SDK Python Messages sur GitHub.

Étapes suivantes

Cet article a décrit le Kit de développement logiciel (SDK) Advanced Messaging for WhatsApp. Pour plus d’informations, consultez les articles suivants :