Comment Programmer des Messages sur WhatsApp avec PHP Le Guide Facile

3 janvier 2025

Dans ce tutoriel, vous apprendrez à programmer l'envoi de messages en utilisant l'API.

Il existe deux façons de programmer l'envoi d'un message à une date et/ou une heure ultérieure : en spécifiant le jour et l'heure exacts auxquels vous souhaitez l'envoyer ou en indiquant combien de minutes, d'heures ou de jours vous souhaitez retarder la livraison différée.

Si vous souhaitez envoyer des messages depuis du code, vous pouvez utiliser n'importe quel langage de programmation pour effectuer des requêtes HTTPS vers l'API. Ci-dessous se trouve 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.
  • Numéro de téléphone du destinataire avec l'indicatif international au format E164. Exemple : +12345678909. Vous pouvez valider le numéro de téléphone ici.

Point de terminaison API

Dans ce tutoriel, nous utiliserons le point de terminaison API suivant :

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: ENTER API KEY HERE

Envoyer un message à une date précise au format ISO8601

Exemple de corps de requête au format 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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'deliverAt' => '2025-01-03T10:11:24.323Z',
  ]),
  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;
}

Vous pouvez également envoyer des messages programmés à un groupe :

<?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' => '${group_ID@g.us}',
    'message' =>
      'This is a scheduled message to be sent tomorrow to a group chat.Date format is based on ISO 8601 format with default UTC time zone',
    'deliverAt' => '2025-01-04T10:01:24.323Z',
  ]),
  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;
}

Différer la livraison du message de quelques minutes, heures ou jours

Exemple de corps de requête au format JSON

Les valeurs d'exemple valides seraient : 1m = dans 1 minute, 2h = dans 2 heures, 15d = dans 15 jours.

Les valeurs doivent être des nombres entiers, donc si vous devez programmer un message pour 1,5 heure, par exemple, vous devez spécifier 90m = dans 90 minutes

<?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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'schedule' => [
      'delayTo' => '1h',
    ],
  ]),
  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;
}

Alternativement, vous pouvez retarder la livraison du message d'un nombre donné de secondes :

<?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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'schedule' => [
      'delayTo' => '180',
    ],
  ]),
  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;
}

Test en direct de l'API

Vous pouvez maintenant jouer, déboguer et tester l'API en direct directement depuis votre navigateur, explorer et essayer plus 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 😎

Des questions ? Consultez les questions fréquentes ci-dessous.

Questions fréquentes

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 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.

Quels types de messages peuvent être envoyés ?

Vous pouvez envoyer différents types de messages, y compris du texte, des images, des vidéos, des emojis, de l'audio, des GIFs, des emplacements géographiques et des documents via l'API.

Consultez d'autres tutoriels pour plus d'informations.

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 point de terminaison qui peut valider si un numéro de téléphone donné existe sur WhatsApp ou non.

La seule condition requise 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 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 des numéros. Ce point de terminaison ne valide que le format E164, mais il ne vérifie pas si le numéro de téléphone existe effectivement sur WhatsApp ou non.

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 utiles supplémentaires

Documentation API

Pour plus de détails sur le point de terminaison de l'API, veuillez consulter le document 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/Messages

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free