Envoyer des messages multimédias aux chaînes WhatsApp en utilisant l'API

25 octobre 2024

Apprenez à gérer, automatiser et envoyer efficacement des messages multimédias, tels que des images, vidéos et documents, aux chaînes WhatsApp en 2024. Ce guide fournit des instructions complètes pour utiliser l'API WhatsApp afin d'engager votre audience et de diffuser du contenu riche. Inclut des exemples de code prêts à l'emploi pour une intégration facile !

🤩 🤖 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**!**

Aujourd'hui, nous allons vous montrer comment envoyer des images, vidéos, documents et mémos vocaux à vos chaînes avec l'API de Wassenger.

Un fichier média peut être l'un des 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. Ci-dessous vous trouverez le testeur d'API en direct avec des exemples de code prêts à l'emploi dans divers langages.

Prérequis

  • Avoir un numéro WhatsApp déjà lié à la plateforme et en ligne.
  • ID de la chaîne WhatsApp (WID) que vous pouvez trouver de deux façons :
  1. Sur le panneau de gestion du numéro WhatsApp, allez dans « Groups ». De là, vous verrez les chaînes auxquelles votre numéro a accès.
  2. En utilisant l'API, interrogez les chaînes disponibles sur votre appareil via cet endpoint.

Endpoint API

Dans ce tutoriel nous utiliserons l'endpoint API suivant :

Préparer la requête

URL cible de l'API

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

En-têtes HTTPS requis

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

Corps de la requête au format JSON pour un message image

{
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://picsum.photos/seed/picsum/600/400", 
"viewOnce": false
}
}

Corps de la requête au format JSON pour un message vidéo

{
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4", 
"viewOnce": false
}
}

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

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

Envoyer des images à une chaîne WhatsApp

# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://picsum.photos/seed/picsum/600/400", 
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json", 
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://picsum.photos/seed/picsum/600/400',
      'viewOnce' => null,
    ],
  ]),
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Token: API_TOKEN_GOES_HERE',
  ],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
  json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://picsum.photos/seed/picsum/600/400',
      'viewOnce' => null,
    ],
  ])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

require 'uri' require 'net/http'

url = URI("https://api.wassenger.com/v1/messages") http = Net::HTTP.new(url.host, url.port)

http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for an image message\",\"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\\",\\"viewOnce\\":false}}"

response = http.request(request) puts response.read_body

// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
.asString();

🤩 🤖 Wassenger est une solution API complète pour WhatsApp. Inscrivez-vous pour un essai gratuit de 7 jours et commencez en quelques minutes !

Envoyer des vidéos à une chaîne WhatsApp

# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4", 
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json", 
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
      'viewOnce' => null,
    ],
  ]),
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Token: API_TOKEN_GOES_HERE',
  ],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
  json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for a video message',
    'media' => [
      'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
      'viewOnce' => null,
    ],
  ])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

require 'uri' require 'net/http'

url = URI("https://api.wassenger.com/v1/messages")

http = Net::HTTP.new(url.host, url.port) http.use_ssl = true

request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for a video message\",\"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\\",\\"viewOnce\\":false}}"

response = http.request(request) puts response.read_body

// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
.asString();

🤩 🤖 Wassenger est une solution API complète pour WhatsApp. Inscrivez-vous pour un essai gratuit de 7 jours et commencez en quelques minutes !

Test API en direct

Vous pouvez tester l'API en direct et jouer avec elle directement depuis votre navigateur.

Une fois vos tests terminés, récupérez l'exemple de code généré automatiquement dans le langage de programmation de votre choix et vous serez prêt à partir.

Essayez dès maintenant notre testeur API en direct

🤩 🤖 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

Puis-je utiliser Wassenger pour envoyer des messages marketing ?

Comme vous le savez peut-être, WhatsApp a des politiques strictes concernant l'envoi de messages marketing non sollicités, de contenu illicite ou de spam.

L'envoi de messages marketing ou de tout message non sollicité aux utilisateurs n'est pas autorisé et mettrait votre numéro WhatsApp à haut risque de bannissement.

La communication via WhatsApp n'est pas adaptée à tous les cas d'usage professionnels ; nous recommandons donc de concevoir une stratégie de communication légitime et approuvée par les utilisateurs pour éviter les problèmes.

Veuillez lire nos directives avec les bonnes pratiques de communication et comment éviter d'être banni.

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

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

Par exemple, pour 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 vérifier si un numéro de téléphone donné est lié à un compte WhatsApp et peut recevoir des messages.

L'API fournit un endpoint 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 de l'endpoint 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 l'endpoint de validation des numéros. Cet endpoint 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 le tableau des tarifs pour plus de détails sur les limites.

Vous cherchez d'autres réponses ? Consultez la FAQ étendue.

Ressources utiles complémentaires

Documentation de l'API 🖥️

Pour plus de détails sur l'endpoint 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 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/Messages/operation/createMessage

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free