Envoyer un message multimédia WhatsApp avec C# en 30 secondes

February 19, 2019
Rédigé par

Image d'en-tête

Lorsque l'API Twilio pour WhatsApp a été lancée à l'été 2018, elle ne pouvait traiter que des messages texte. Désormais, l'API peut envoyer et recevoir des messages multimédias 🎉. L'envoi d'un message multimédia avec WhatsApp est tout aussi rapide que l'envoi d'un message texte. Voici comment procéder en seulement 30 secondes !

Pour aller encore plus vite, vous trouverez ci-dessous tout le code et un lien vers le projet terminé sur GitHub.

Si vous souhaitez voir une intégration complète des API Twilio dans une application .NET Core, consultez cette série de vidéos gratuite en 5 parties que j'ai créée. Elle est séparée du tutoriel de ce post, mais vous donnera une vue complète de plusieurs API à la fois.

Pour coder, assurez-vous que les éléments suivants sont configurés :

Après avoir créé une nouvelle application console .NET, ajoutez le package Twilio NuGet à la solution. Si vous n'êtes pas sûr de la marche à suivre, consultez cet article.

Ouvrez le fichier Program.cs et ajoutez l'instruction using Twilio. Initialisez le client Twilio REST avec l'Account SID et l'Auth Token, qui se trouvent dans la console Twilio.

Cette solution utilise l'Account SID et l'Auth Token comme variables d'environnement, mais ils peuvent également être ajoutés via les App Settings and User Secrets (paramètres de l'application et secrets d'utilisateur).

using System;
using System.Collections.Generic;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;

namespace WhatsApp
{
   class Program
   {
       static void Main(string[] args)
       {
           TwilioClient.Init(
               Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"),
               Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN")
           );
       }
   }
}

Pour envoyer un message, appelez la méthode MessageResource.Create. Transmettez le numéro de téléphone Twilio WhatsApp qui a été utilisé pour activer la sandbox et un numéro de téléphone WhatsApp, tous deux au format E.164.

Un message texte peut être envoyé à l'aide du paramètre body. Pour envoyer un message multimédia, créez une nouvelle collection à partir de l'URI vers l'élément multimédia et définissez-le comme paramètre mediaUrl.

TwilioClient.Init(
               Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"),
               Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN")
           );

var message = MessageResource.Create(
               from: new PhoneNumber("whatsapp:TWILIO_WHATSAPP_NUMBER"),
               to: new PhoneNumber("whatsapp:YOUR_MOBILE_NUMBER"),
               body: "Ahoy from Twilio!",
               mediaUrl: new List<Uri>{new Uri("URL_TO_IMAGE")}
           );

Console.WriteLine("Message SID: " + message.Sid);

Restaurez les packages NuGet pour vous assurer qu'ils sont tous téléchargés, puis créez et exécutez le projet.

En un rien de temps, un message multimédia sera envoyé sur votre téléphone !

Image - screenshot d"une conversation WhatsApp avec une photo de cupake

La prochaine étape ?

Il existe quelques différences entre les messages MMS et les messages multimédias WhatsApp. Les messages multimédias ne peuvent être envoyés aux utilisateurs de WhatsApp que si une « session » de messagerie active est établie. Les sessions de messagerie sont créées lorsqu'un utilisateur répond à un modèle de message ou lorsqu'il initie la conversation. L'utilisateur doit également être actif pendant 24 heures après le dernier message envoyé. Les messages multimédias WhatsApp ne prennent pas non plus en charge certains types de fichiers que les MMS prennent eux en charge. Pour plus d'informations sur la prise en charge des types de fichiers, consultez la FAQ.

Vous voulez essayer quelque chose d'un peu plus approfondi ? Consultez cet article et découvrez comment envoyer et recevoir des messages sur WhatsApp.

D'autres idées et conseils utiles sont également disponibles dans les guides de démarrage rapide de WhatsApp, la documentation de l'API REST Twilio et les librairies C#/.NET.

J'ai hâte de voir ce que vous allez construire !