Bienvenue dans le monde dynamique des messages multimédias pilotés par API ! Voici l'occasion de révolutionner vos discussions WhatsApp en envoyant non seulement du texte, mais toute une gamme de types de médias. Imaginez égayer vos messages avec des GIFs animés, des documents importants, ou même des vidéos engageantes directement depuis votre ordinateur !
Ce tutoriel n'est pas réservé aux experts techniques. Que vous débutiez en programmation ou que vous bidouillez depuis longtemps, vous verrez comment quelques lignes de code peuvent donner vie à vos messages. Il s'agit d'enrichir vos conversations, de les rendre plus colorées, et de transformer chaque message que vous envoyez en une expérience.
Prêt à pimenter vos discussions et à connecter avec votre audience d'une toute nouvelle manière ? Plongeons dans cette aventure multimédia et voyons comme il est simple de faire ressortir vos messages !
🤩 🤖 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 pour un essai gratuit et commencez en quelques minutes**!**
Dans ce tutoriel, vous apprendrez comment envoyer des messages multimédias vers 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.
Prérequis
- Avoir un numéro WhatsApp déjà lié à la plateforme et en ligne.
- 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 :
Dernière nouvelle ! Vous pouvez désormais envoyer des messages média en une seule requête API en passant 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 JSON avec un champ
urlcontenant l’URL publiquement accessible pour télécharger le fichier (recommandé). - Données de formulaire (
multipart/form-data) avec le champfilecontenant le contenu du fichier. - Données binaires brutes en téléversant le contenu du fichier comme flux de données avec le type MIME approprié en en-tête Content-Type, ex :
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 de téléversement et de traitement à chaque livraison d’un message média, améliorant la vitesse de livraison des messages et simplifiant l’intégration API.
Notez que le fichier téléversé sera stocké sur la plateforme pendant 90 jours par défaut, par conséquent dans de nombreux cas vous n’aurez qu’à téléverser le fichier une seule fois. Optionnellement, vous pouvez aussi 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 API. Par défaut, votre compte dispose de 10 Go de capacité de stockage de fichiers 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 à partir de laquelle télécharger le fichier.
Si l’URL n’est pas accessible publiquement, retourne un statut HTTP non valide (>=400) ou renvoie un contenu non binaire, comme du HTML ou du texte, l’API renverra une erreur.
URL cible de l’API (POST)
https://api.wassenger.com/v1/files
En-têtes HTTPS requis
Content-Type: application/json
Token: $API-TOKEN
Corps de la requête au format JSON
{
"url": "https://picsum.photos/seed/picsum/600/400"
}
Alternativement, vous pouvez également 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"
}
Obtenir l’ID du fichier depuis la réponse de l’API
Si le fichier est correctement téléversé sur la plateforme, l’API renverra une réponse JSON valide 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 récupérer 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 multipart form data largement utilisé par les navigateurs web pour téléverser différents types de contenus, y compris des fichiers, vers un serveur distant.
Vous pouvez en apprendre plus ici sur le fonctionnement du téléversement multipart form.
URL cible de l’API (POST)
https://api.wassenger.com/v1/files
En-têtes HTTPS requis
Content-Type: multipart/form-data
Token: $API-TOKEN
Corps de la requête
Différemment du téléversement basé sur JSON, dans ce cas, nous devons nous appuyer sur un mécanisme plus complexe dépendant du client HTTP que nous utilisons et qui nous aidera à composer les champs du formulaire selon la spécification multipart.
Selon le langage de programmation ou le client HTTP que vous utilisez, le processus peut varier. Pour plus de simplicité, nous allons mettre en évidence les outils les plus populaires, tels que Postman, et les langages de programmation courants.
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 pour un essai gratuit et commencez en quelques minutes**!**
Téléverser le fichier depuis votre navigateur web
Vous pouvez téléverser manuellement des fichiers facilement 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 le 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.
De plus, vous pouvez trouver différents langages à 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 pour un essai gratuit et commencez en quelques minutes**!**
Test en direct du téléversement de fichier via l’API
Explorez notre testeur d’API en direct
Envoyer des messages média à un numéro de téléphone
Envoyer un nouveau message média via l’API est simple : vous avez juste besoin du numéro de téléphone cible au format E164 et de 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 ce numéro en tant que contact dans l’annuaire de votre mobile.
Préparer la requête
URL cible de l’API (POST)
https://api.wassenger.com/v1/messages
En-têtes HTTPS requis
Content-Type: application/json
Token: $API_KEY
Corps de la requête au format JSON
{
"phone": "+12345678900",
"message": "This is a media message example 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Vous pouvez maintenant envoyer le message média via l’API.
Envoyer des messages média à un groupe
Très similaire au scénario précédent, vous pouvez également envoyer des messages média aux discussions de groupe.
Pour envoyer des messages à un groupe, vous devez en être un participant avec les permissions d’envoi de messages. Si vous êtes l’administrateur du groupe, vous aurez toutes les permissions pour envoyer des messages.
Préparer la requête
URL cible de l’API (POST)
https://api.wassenger.com/v1/messages
En-têtes HTTPS requis
Content-Type: application/json
Token: $API_KEY
Corps de la requête au format JSON
Envoi d’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 média via l’API
Vous pouvez maintenant jouer, déboguer et tester l’API en direct directement depuis votre navigateur, explorer et essayer 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 😎
🤩 🤖 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 pour un essai gratuit et commencez en quelques minutes**!**
FAQ
Quel type de fichiers média peut être envoyé ?
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
Il vous suffit d’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 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 aussi valider et normaliser le format d’une liste de numéros en utilisant le point de terminaison validateNumbers de l’API. Ce point de terminaison ne valide que le format correct E164, mais il ne vérifie pas si le numéro existe effectivement sur WhatsApp.
Note : Le nombre de validations de vérification WhatsApp est limité par mois en fonction de votre plan d’abonnement. Veuillez consulter la table des prix 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 :








