Lorsque le marketing digital est devenu populaire il y a quelques années, personne n'a pensé à utiliser WhatsApp pour des stratégies de vente. Les entreprises se concentraient sur les bannières et les publicités internet. Aujourd'hui, tout a changé. Nous avons désormais l'Influencer Marketing, des stratégies digitales pour les réseaux sociaux, le e-commerce, l'affiliate marketing, et des boutiques vendant exclusivement via WhatsApp.
WhatsApp est une plateforme très efficace pour développer de nouvelles activités. Avec Wassenger, vous pouvez tirer parti des meilleures stratégies de vente via WhatsApp, vous aidant à développer votre entreprise et augmenter vos ventes. Envoyer des vidéos promotionnelles, informatives ou documentaires est un moyen efficace de garder les clients engagés et informés.
Dans ce tutoriel, nous allons vous apprendre comment envoyer des messages vidéo automatisés et plus encore en utilisant Wassenger, afin que vous puissiez améliorer vos efforts marketing et obtenir de meilleurs résultats.
🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Découvrez 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**!**
Si vous avez besoin d'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 plusieurs langages de programmation.
Prérequis
- Avoir un numéro WhatsApp déjà lié à la plateforme et en ligne.
- ID du groupe WhatsApp cible. Exemple : 120363163556480010@g.us. Obtenez l'ID du groupe WhatsApp de vos Group Chats disponibles ici (nécessite un compte actif sur Wassenger)
Points de terminaison API
Dans ce tutoriel nous utiliserons les points de terminaison API suivants :
Breaking news ! Vous pouvez maintenant 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 vidéo, 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
urlcontenant l'URL publiquement accessible pour télécharger le fichier (recommandé). - Form data (
multipart/form-data) en utilisant le champfileavec 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 bon type MIME en en-tête Content-Type, par ex. :
video/mp4.
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 stocker le fichier une seule fois, évitant le coût de téléversement et de traitement à chaque envoi d'un message média, améliorant ainsi 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, donc dans de nombreux cas vous n'aurez besoin de téléverser le fichier qu'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 de l'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 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://download.samplelib.com/mp4/sample-5s.mp4"
}
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://download.samplelib.com/mp4/sample-5s.mp4",
"expiration": "1d",
"filename": "sample-5s.mp4",
"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 retournera une réponse valide au format JSON comme ceci :
[
{
"id": "[Redacted ID]",
"format": "native",
"filename": "sample-5s.mp4",
"size": 53697,
"mime": "video/mp4",
"ext": "mp4",
"kind": "video",
"sha2": "[Redacted Hash]",
"tags": [],
"status": "active",
"mode": "default",
"createdAt": "2021-05-08T22:49:50.954Z",
"expiresAt": "2021-09-06T22:49:50.949Z"
}
]
Important : Depuis la réponse JSON vous devez obtenir le champ id avec une valeur, par exemple 06248ed01a7a65946c0701, qui représente l'ID 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 contenu, y compris des fichiers, vers un serveur distant.
Vous pouvez en apprendre davantage 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 et 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 allons mettre en avant 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. Découvrez plus de 100 cas d'utilisation de l'API et automatisez tout sur WhatsApp en vous inscrivant pour un essai gratuit et en commençant 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/video.mp4 doit représenter le chemin du fichier que vous souhaitez téléverser depuis votre disque local :
curl \
-F file=@path/to/video.mp4 \
-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 appels HTTP.
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 à 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/video.mp4'
# 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/video.mp4';
// 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/video.mp4';
// 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/video.mp4"
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)
}
- C# (RestClient)
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/video.mp4");
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/video.mp4") 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/video.mp4"))
.getBody()
🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Découvrez 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 groupe
Pour ce faire, vous avez simplement besoin de connaître l'ID du chat de groupe cible et l'ID du fichier téléversé (hexadécimal sur 24 caractères) que vous pouvez obtenir depuis les fichiers téléversés listés ici ou depuis la liste des fichiers téléversés via l'API.
Pour envoyer des messages à un groupe, vous devez en être membre 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
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 à un chat de groupe :
{
"group": "120363163556480010@g.us",
"message": "This is a media message example sent a group 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Envoyez la vidéo dans la langue qui correspond le mieux à vos besoins
Découvrez comment utiliser le code dans votre navigateur sans installer de logiciel.
Vous pouvez également trouver différents langages à tester sur Replit.com :
# 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 = { "group": "1234567890-100000000@g.us", "message": "This is a caption for a video message", "media": { "url": "https://download.samplelib.com/mp4/sample-5s.mp4", "viewOnce": False } } headers = { "Content-Type": "application/json", "Token": "ENTER API KEY 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([
'group' => '1234567890-100000000@g.us',
'message' => 'This is a caption for a video message',
'media' => [
'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
'viewOnce' => null,
],
]),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Token: ENTER API KEY 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([
'group' => '1234567890-100000000@g.us',
'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' => 'ENTER API KEY 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("{\"group\":\"1234567890-100000000@g.us\", \"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", "ENTER API KEY HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
- C# (RestClient)
// 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", "ENTER API KEY HERE");
request.AddParameter("application/json", "{\"group\":\"1234567890-100000000@g.us\", \"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"] = 'ENTER API KEY HERE'
request.body = "{\"group\":\"1234567890-100000000@g.us\", \"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", "ENTER API KEY HERE")
.body("{\"group\":\"1234567890-100000000@g.us\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
.asString();
Test en direct pour envoyer un message de groupe via l'API
Explorez notre testeur d'API en direct
🤩 🤖 Wassenger est une plateforme de communication complète et une solution API pour WhatsApp. Découvrez 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
Quels types de fichiers média 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 voulez envoyer un message à 10 numéros de téléphone, 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 de l'API ici.
Avant de vérifier si un numéro de téléphone 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 de validation de numéros. 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 la tableau des tarifs pour plus de détails sur les limites.
Vous cherchez plus de réponses ? Consultez la FAQ étendue.
Ressources supplémentaires utiles
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 de succès ou d'erreur possibles et des exemples de code prêts à l'emploi dans plusieurs langages de programmation :








