Automatiser les messages multimédias WhatsApp via l'API

27 mars 2025

Pourquoi se contenter de texte brut alors que vous pouvez envoyer automatiquement des vidéos, des images, des GIF et des fichiers ? Avec juste un peu de code, vous pouvez améliorer votre communication sur WhatsApp et faire en sorte que chaque message soit plus personnel, engageant et percutant.

Ce guide s'adresse à tout le monde, que vous soyez développeur ou que vous commenciez seulement à explorer les API. Nous vous expliquerons comment envoyer du contenu multimédia enrichi via WhatsApp en utilisant Wassenger, directement depuis votre ordinateur.

C'est plus facile que vous ne le pensez, et les résultats ? Bien plus amusants et bien plus efficaces. Allons-y et offrons à vos messages la mise à niveau qu'ils méritent.

🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Explorez plus de 100+ cas d'utilisation de l'API et automatisez tout sur WhatsApp en vous inscrivant à un essai gratuit et commencez en quelques minutes!

Dans ce tutoriel, vous apprendrez comment envoyer des messages multimédias à des numéros de téléphone et à des listes de discussions de groupe en utilisant l'API.

Un fichier média peut être l'un des éléments suivants : images (JPEG, PNG, WEBP), vidéos (MP4, 3GPP), audios (MP3, OGG, MP4, ACC), gifs (MP4) et documents (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, autres types binaires).

Si vous devez envoyer des messages depuis du code, vous pouvez utiliser n'importe quel langage de programmation capable d'effectuer des requêtes HTTPS vers l'API. Vous trouverez ci-dessous le testeur d'API en direct avec des exemples de code prêts à l'emploi dans divers langages de programmation.

Exigences

  • Avoir un numéro WhatsApp déjà lié à la plateforme et en ligne.
  • Le numéro de téléphone du destinataire avec l'indicatif international au format E164. Exemple : +12345678900. Validez le format du numéro ici.

Points de terminaison de l'API

Dans ce tutoriel, nous utiliserons les points de terminaison API suivants :

Bonne nouvelle ! Vous pouvez désormais envoyer des messages médias en une seule requête API en transmettant l'URL distante où le fichier est stocké. Cliquez ici pour le tester

Téléverser le fichier

Pour envoyer un fichier en tant que message multimédia, dans ce cas un fichier image, vous devez d'abord téléverser le fichier sur la plateforme.

Vous pouvez téléverser le fichier en utilisant les méthodes suivantes via l'API :

  • URL distante en utilisant JSON avec un champ url contenant l'URL publiquement accessible pour télécharger le fichier (recommandé).
  • Données de formulaire (multipart/form-data) en utilisant le champ file avec le contenu du fichier.
  • Données binaires brutes en téléversant le contenu du fichier en tant que flux de données avec le type MIME du fichier approprié dans l'en-tête Content-Type, par exemple : image/jpeg, application/pdf.

Dans ce tutoriel, nous couvrirons les deux premières méthodes de téléversement de fichiers.

Téléverser le fichier permet au système de valider et de stocker le fichier une seule fois, évitant ainsi le coût d'upload et de traitement à chaque livraison d'un message média, améliorant ainsi la vitesse de livraison des messages et simplifiant l'intégration de l'API.

Remarque : le fichier téléversé sera stocké sur la plateforme pendant 90 jours par défaut, donc dans de nombreux cas vous n'aurez à téléverser le fichier qu'une seule fois. Optionnellement, vous pouvez également configurer la durée de stockage du fichier sur la plateforme en définissant un temps d'expiration personnalisé, pour plus de détails consultez la documentation de l'API. Par défaut, votre compte dispose d'une capacité de stockage de fichiers de 10 Go dans le cloud.

Téléverser le fichier en utilisant une URL distante

Vous pouvez téléverser n'importe quel fichier sur la plateforme en spécifiant simplement l'URL publique depuis laquelle télécharger le fichier.

Si l'URL n'est pas accessible publiquement, renvoie un statut HTTP non valide (>=400) ou renvoie du contenu non binaire, comme du HTML ou du texte, l'API renverra une erreur.

Target API URL (POST)

https://api.wassenger.com/v1/files

Required HTTPS headers

Content-Type: application/json
Token: $API-TOKEN

Request body in JSON format

{
  "url": "https://picsum.photos/seed/picsum/600/400"
}

Alternativement, vous pouvez aussi spécifier des champs optionnels lors du téléversement du fichier, tels qu'un temps d'expiration personnalisé, un identifiant de référence ou un nom de fichier personnalisé.

{
  "url": "https://picsum.photos/seed/picsum/600/400",
  "expiration": "1d",
  "filename": "custom-filename.jpg",
  "reference": "Optional reference ID"
}

Récupérer l'ID du fichier dans la réponse de l'API

Si le fichier est correctement téléversé sur la plateforme, l'API renverra une réponse valide au format JSON comme ceci :

[
  {
    "id": "[Redacted ID]",
    "format": "native",
    "filename": "sample.jpg",
    "size": 53697,
    "mime": "image/jpeg",
    "ext": "jpeg",
    "kind": "image",
    "sha2": "[Redacted Hash]",
    "tags": [],
    "status": "active",
    "mode": "default",
    "createdAt": "2021-05-08T22:49:50.954Z",
    "expiresAt": "2021-09-06T22:49:50.949Z"
  }
]

Important : Dans la réponse JSON, vous devez obtenir le champ id avec une valeur, par exemple 06248ed01a7a65946c0701, qui représente l'identifiant unique du fichier que nous utiliserons ensuite pour envoyer le fichier en tant que message média dans une requête API séparée.

Téléverser un fichier en utilisant multipart form data

Vous pouvez téléverser n'importe quel fichier sur la plateforme en utilisant le mécanisme traditionnel de multipart form data largement utilisé par les navigateurs web pour téléverser différents types de contenu, y compris des fichiers, vers un serveur distant.

Vous pouvez en apprendre plus ici sur le fonctionnement du téléversement multipart form.

Target API URL (POST)

https://api.wassenger.com/v1/files

Required HTTPS headers

Content-Type: multipart/form-data
Token: $API-TOKEN

Request body

Contrairement au téléversement basé sur JSON, dans ce cas, nous devons nous appuyer sur un mécanisme plus complexe basé sur le client HTTP que nous utilisons, qui nous aidera à composer les champs du formulaire conformément à la spécification multipart.

Selon le langage de programmation ou le client HTTP que vous utilisez, le processus peut varier. Pour simplifier, nous mettrons en évidence les outils les plus populaires, tels que Postman, et les langages de programmation les plus utilisés.

L'exigence principale est de définir le champ file dans le formulaire de données, sinon l'API renverra une erreur car ce champ est obligatoire.

🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Explorez plus de 100+ cas d'utilisation de l'API et automatisez tout sur WhatsApp en vous inscrivant à un essai gratuit et commencez en quelques minutes**!**

Téléverser le fichier depuis votre navigateur web

Vous pouvez téléverser des fichiers manuellement sur la plateforme depuis la console web sans installer de logiciel :

Pour le téléversement automatisé de fichiers, veuillez consulter les options alternatives ci-dessous.

Téléverser un fichier en utilisant cURL

cURL est un client HTTP en ligne de commande populaire et utile.

Vous pouvez facilement téléverser des fichiers depuis la ligne de commande en utilisant la commande suivante, où path/to/image.jpg doit représenter le chemin du fichier que vous souhaitez téléverser depuis votre disque local :

curl \
-F file=@path/to/image.jpg \
-H 'Token: $API-TOKEN' \
https://api.wassenger.com/v1/files

Téléverser un fichier en utilisant Postman

Postman est un outil polyvalent et pratique pour tester et déboguer des requêtes HTTP.

En suivant ce simple tutoriel, vous pouvez téléverser des fichiers en utilisant Postman, en remplaçant l'URL cible par celle de l'API.

Explorez le tutoriel Postman ici

Téléverser un fichier en utilisant du code

Découvrez comment utiliser le code dans votre navigateur sans installer de logiciel.

Vous pouvez également trouver différents langages que vous pouvez tester sur Replit.com:

# Requires to install requests package:
# Run: pip install requests
import requests
# Customize the local path of the file to upload
filepath = '/path/to/image.jpg'
# API key required in order to authenticate the upload
apikey = '$API_KEY'
# Read file to upload
files = {'file': open(filepath, 'rb')}
# Upload file
response = requests.post('https://api.wassenger.com/v1/files', files=files)
if response.status_code >= 400:
print('Request failed with invalid status:', response.status_code)
else:
json = response.json()
file_id = json[0]['id']
print('File uploaded successfully with ID:', file_id)
// Customize the local path of the file to upload
$filepath = '/path/to/image.jpg';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Upload file
$upload = curl_init();
curl_setopt_array($upload, array(
CURLOPT_URL => 'https://api.wassenger.com/v1/files', 
CURLOPT_HTTPHEADER => array(
"Token: $apikey"
), 
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($filepath)
), 
CURLOPT_POST => TRUE, 
CURLOPT_SSL_VERIFYPEER => FALSE, 
CURLOPT_SSL_VERIFYHOST => FALSE
);
$response = curl_exec($upload);
if(curl_errno($ch) {
echo("Request failed");
} else if(curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$json = json_decode($response, true);
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
// Requires to install pecl_http package
// Run: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
$client = new http\Client;
$request = new http\Client\Request;
// Customize the local path of the file to upload
$filepath = '/path/to/image.jpg';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Prepare request
$body = new http\Message\Body;
$body->addForm(null, [
[
'name' => 'file', 
'type' => null, 
'file' => $filename, 
'data' => null
]
]);
$request->setRequestUrl('https://api.wassenger.com/v1/files');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setQuery(new http\QueryString([
'reference' => 'optional-reference-id'
]));
$request->setHeaders([
'Token' => $apikey
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
if($response->getResponseCode() >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$body = json_decode($response->getBody()->toString());
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
package main
import(
"net/http"
"os"
"bytes"
"path"
"path/filepath"
"mime/multipart"
"io"
"encoding/json"
)
// API key required in order to authenticate the upload
const apiKey = "$API_KEY"
func main() {
# Customize the local path of the file to upload
fileName:= "path/to/image.jpg"
fileDir, _:= os.Getwd()
filePath:= path.Join(fileDir, fileName)
file, _:= os.Open(filePath)
defer file.Close()
body:= &bytes.Buffer{}
writer:= multipart.NewWriter(body)
part, _:= writer.CreateFormFile("file", filepath.Base(file.Name()))
io.Copy(part, file)
writer.Close()
r, _:= http.NewRequest("POST", "https://api.wassenger.com/v1/files", body)
r.Header.Add("Token", apiKey)
r.Header.Add("Content-Type", writer.FormDataContentType())
client:= &http.Client{Timeout: 90 * time.Second}
response, err:= client.Do(r)
if err != nil {
fmt.Printf("Request failed with an error: %s", err.Error())
return
}
if(response.StatusCode >= 400) {
fmt.Printf("Request failed with response status: %d", response.StatusCode)
return
}
body:= []struct{
Id string `json:"id"`
}{}
defer response.Body.Close()
err:= json.NewDecoder(response.Body).Decode(&body)
if err != nil {
fmt.Printf("Failed to decode JSON: %s", err.Error())
return
}
fileId:= body[0].Id
fmt.Printf("File uploaded successfully with ID:", fileId)
}
RestClient restClient = new RestClient("https://api.wassenger.com");
RestRequest restRequest = new RestRequest("/v1/files");
restRequest.Method = Method.POST;
restRequest.AddHeader("Token", "$API_KEY");
restRequest.AddHeader("Content-Type", "multipart/form-data");
restRequest.AddFile("file", "/path/to/image.jpg");
var response = restClient.Execute(restRequest);
var json = JsonConvert.DeserializeObject(response.Content);
var fileId =(string)json[0]["id"];
Console.WriteLine("File uploaded successfully with ID: {0}", fileId);
require 'net/http/post/multipart'
url = URI.parse('https://api.wassenger.com/v1/files')
File.open("/path/to/image.jpg") do |image|
req = Net::HTTP::Post::Multipart.new url.path, "file" => UploadIO.new(image, "image/jpeg", "image.jpg")
req['Token'] = "API_KEY"
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
end
List<File> = Unirest.post("https://api.wassenger.com/v1/files")
.header("Token", "API_KEY")
.field("file", new File("/path/to/image.jpg"))
.getBody()

🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Explorez plus de 100+ cas d'utilisation de l'API et automatisez tout sur WhatsApp en vous inscrivant à un essai gratuit et commencez en quelques minutes!

Test en direct du téléversement de fichiers via l'API

Explorez notre testeur d'API en direct

Envoyer des messages multimédias à un numéro de téléphone

Envoyer un nouveau message multimédia via l'API est simple : il vous suffit de connaître le numéro de téléphone cible au format E164 et l'ID du fichier téléversé (24 caractères hexadécimaux) que vous pouvez obtenir depuis la liste des fichiers téléversés ici ou depuis la liste des fichiers téléversés via l'API.

Vous pouvez envoyer des messages à n'importe quel numéro de téléphone dans le monde qui possède un compte WhatsApp, il n'est pas nécessaire d'ajouter un numéro comme contact dans l'annuaire de votre appareil mobile.

Préparer la requête

Target API URL (POST)

https://api.wassenger.com/v1/messages

Required HTTPS headers

Content-Type: application/json
Token: $API_KEY

Request body in JSON format

{
  "phone": "+12345678900",
  "message": "This is a media message example 😀",
  "media": {
    "file": "UPLOADED FILE ID GOES HERE"
  }
}

Vous pouvez maintenant envoyer le message multimédia via l'API.

Envoyer des messages multimédias à un groupe

Très similaire au scénario précédent, vous pouvez également envoyer des messages multimédias aux discussions de groupe.

Pour envoyer des messages à un groupe, vous devez en être participant et disposer des autorisations d'envoi de messages. Si vous êtes administrateur du groupe, vous aurez toutes les permissions pour envoyer des messages.

Préparer la requête

Target API URL (POST)

https://api.wassenger.com/v1/messages

Required HTTPS headers

Content-Type: application/json
Token: $API_KEY

Request body in JSON format

Envoyer un message à une discussion de groupe :

{
  "group": "120363163556487865@g.us",
  "message": "This is a media message example sent a group 😀",
  "media": {
    "file": "UPLOADED FILE ID GOES HERE"
  }
}

Test en direct : envoi de messages multimédias via l'API

Vous pouvez maintenant tester, déboguer et essayer l'API en direct directement depuis votre navigateur, explorer et tester davantage d'exemples d'API et obtenir en un clic des extraits de code prêts à l'emploi disponibles dans plus de 15 langages de programmation 😎

Essayez-le maintenant

🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Explorez plus de 100+ cas d'utilisation de l'API et automatisez tout sur WhatsApp en vous inscrivant à un essai gratuit et commencez en quelques minutes!

FAQ

Quels types de fichiers multimédias peuvent être envoyés ?

Vous pouvez envoyer des images (JPEG, PNG, WEBP), des vidéos (MP4, 3GPP), des audios (MP3, OGG, MP4, ACC), des gifs (MP4) et des documents (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, autres types binaires).

Consultez la documentation de l'API pour plus de détails.

Comment envoyer des messages à plusieurs numéros de téléphone

Vous devez simplement envoyer plusieurs requêtes API, une par numéro de téléphone cible.

Par exemple, si vous souhaitez envoyer un message à 10 numéros, vous devez envoyer 10 requêtes HTTPS indépendantes à l'API.

Il n'existe pas d'option pour envoyer plusieurs messages dans une seule requête API.

Comment valider si un numéro de téléphone peut recevoir des messages WhatsApp

Vous pouvez valider si un numéro de téléphone donné est lié à un compte WhatsApp et peut recevoir des messages.

L'API fournit un point de terminaison qui peut valider si un numéro de téléphone donné existe sur WhatsApp ou non.

La seule exigence est d'avoir au moins un numéro WhatsApp connecté à la plateforme dans votre compte actuel.

Pour plus de détails, veuillez consulter la documentation du point de terminaison API ici.

Avant de vérifier si un numéro existe sur WhatsApp, vous pouvez également valider et normaliser le format d'une liste de numéros de téléphone en utilisant le point de terminaison validateNumbers. Ce point de terminaison ne valide que le bon format E164, mais il ne vérifie pas si le numéro de téléphone existe effectivement sur WhatsApp.

Remarque : Le nombre de validations de vérification WhatsApp est limité par mois en fonction de votre plan d'abonnement. Veuillez consulter le tableau des tarifs pour plus de détails sur les limites.

Vous cherchez plus de réponses ? Consultez la FAQ étendue.

Ressources utiles supplémentaires

Documentation de l'API

Pour plus de détails sur les points de terminaison de l'API, veuillez consulter la documentation où vous trouverez tous les détails sur les paramètres de requête acceptés, les réponses possibles en cas de succès ou d'erreur et des exemples de code prêts à l'emploi dans plusieurs langages de programmation :

https://app.wassenger.com/docs/#tag/Files

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free