Aller au contenu

Notifications WhatsApp

Aperçu

Pour envoyer des messages WhatsApp via Apprise, vous devez d’abord configurer votre compte Meta WhatsApp Cloud API. Suivez les etapes suivantes :

  1. Creer un compte Meta Developer
    Rendez-vous sur Meta for Developers puis connectez-vous ou creez un compte.
  2. Creer une application WhatsApp
    Depuis le tableau de bord Meta Developer, creez une nouvelle application et ajoutez WhatsApp comme produit.
  3. Generer un jeton d’acces permanent
    • Ouvrez la section WhatsApp > API Setup de votre application.
    • Selectionnez ou creez un System User, attribuez-lui un role puis generez un permanent access token avec les permissions whatsapp_business_messaging.
    • Ce jeton sera utilise dans le champ Apprise token.
  4. Recuperer votre From Phone Number ID
    Il ne s’agit pas de votre vrai numero de telephone, mais d’un identifiant numerique attribue par Meta au numero expediteur.
    Vous le trouverez dans votre application WhatsApp > API Setup, section Phone Numbers.
  5. Enregistrer les numeros destinataires
    • Pendant les tests en sandbox, vous devez verifier chaque numero que vous souhaitez contacter via l’interface Meta.
    • En production, votre entreprise devra etre verifiee et disposer du niveau de messagerie approprie.
  6. Facultatif : creer et faire approuver des modeles de message
    • Ouvrez WhatsApp > Message Templates.
    • Creez un modele, par exemple hello_world, puis attendez son approbation.
    • Les modeles permettent une messagerie structuree avec des variables comme {{1}}, {{2}}, et peuvent etre utilises via le prefixe Apprise template:. Cela est explique plus bas.

Une fois tout cela en place, vous etes pret a envoyer des messages WhatsApp avec Apprise.

La syntaxe valide est la suivante :

  • whatsapp://{token}@{from_phone_id}/{targets}
  • whatsapp://{template}:{token}@{from_phone_id}/{targets}
VariableObligatoireDescription
tokenOuiJeton d’acces associe a votre application Meta WhatsApp.
fromOuiFrom Phone ID associe a votre application Meta WhatsApp ; il ne faut pas le confondre avec votre vrai numero de telephone. Il s’agit d’un identifiant distinct, d’environ 14 chiffres.
targetsOuiDestinataires WhatsApp que vous souhaitez notifier.
templateNonVous pouvez facultativement specifier ici un template_name, comme hello_world, le modele par defaut cree lors de la configuration de votre application Meta. Apprise utilisera alors le modele defini.
langNonSi vous utilisez un modele, vous pouvez facultativement surcharger la langue par defaut, en_US, afin de pointer vers une autre version du modele specifie.
VariableDescription
overflowCe paramètre peut être défini sur split, truncate ou upstream. Il détermine la manière dont Apprise remet le message que vous lui transmettez. Par défaut, il vaut upstream.
👉 upstream : ne fait aucune modification et transmet le message exactement tel qu’il a été reçu au service.
👉 truncate : veille à ce que le message tienne dans la limite amont documentée par le service. Si plus d’informations sont fournies que la limite définie, l’excédent est tronqué.
👉 split : similaire à truncate, sauf que si le message dépasse la limite amont documentée par le service, il est découpé en plusieurs morceaux plus petits puis envoyés séquentiellement.
formatCe paramètre peut être défini sur text, html ou markdown. Certains services prennent en charge plusieurs formats de publication du contenu. La valeur par défaut varie selon le service choisi et peut correspondre à l’un de ces trois formats. Vous pouvez facultativement forcer cette option pour vous écarter du comportement par défaut. Si le service ne prend pas en charge plusieurs formats de transmission, ce champ est ignoré.
verifyLes requêtes externes vers des emplacements sécurisés, par exemple via https, utilisent des certificats. Par défaut, Apprise vérifie la validité de ces certificats ; si ce n’est pas le cas, aucune notification n’est envoyée à la source. Dans certains cas, un utilisateur ne dispose pas d’une autorité de certification pour valider la clé ou fait simplement confiance à la source ; dans ce cas, vous pouvez définir ce drapeau sur no. Par défaut, il vaut yes.
ctoSignifie Socket Connect Timeout. Il s’agit du nombre de secondes pendant lesquelles Requests attend que votre client établisse une connexion avec une machine distante, ce qui correspond à l’appel connect() sur la socket. La valeur par défaut est de 4.0 secondes.
rtoSignifie Socket Read Timeout. Il s’agit du nombre de secondes pendant lesquelles le client attend que le serveur envoie une réponse. La valeur par défaut est de 4.0 secondes.
emojisActive la prise en charge des emojis, par exemple :+1: qui sera traduit en 👍. Par défaut, cette option vaut no.
Remarque : selon la configuration côté serveur, l’administrateur peut désactiver globalement la prise en charge des emojis ; mais par défaut, ce n’est pas le cas.
tzIdentifie le fuseau horaire de la base IANA que vous souhaitez utiliser. Par défaut, celui-ci est détecté à partir de la configuration du serveur qui exécute Apprise. Vous pouvez le définir sur des valeurs comme America/Toronto, ou sur tout autre fuseau correctement formaté correspondant à votre région.

Les modeles que vous creez permettent de definir {{1}}, {{2}}, etc., qui seront remplaces lors de l’execution d’Apprise. Pour predefinir ces valeurs, il suffit d’utiliser le prefixe :, deux-points, devant l’index a renseigner.

Par exemple, ?:3=Ma Valeur affectera Ma Valeur a {{3}} a l’execution. Vous devez fournir tous les index attendus, sinon le serveur distant renverra une erreur.

Si vous souhaitez associer le body ou le type d’Apprise a un index, utilisez ces mots-cles speciaux avec le prefixe : pour definir la correspondance. Par exemple, ?:body=1 est accepte et placera le contenu du body d’Apprise dans {{1}}.

Envoyer une notification WhatsApp :

Fenêtre de terminal
# Testez avec la commande suivante :
apprise -b "Message de Test" \
"whatsapp://token@from_phone_id/to_phone_no/"
# Les modeles peuvent etre utilises ainsi :
apprise -b "Message de Test" \
"whatsapp://template_name:token@from_phone_id/to_phone_no/"
# Si vous avez defini les tokens {{1}} et {{2}}, vous pouvez leur attribuer des valeurs ainsi :
apprise -b "Message de Test" \
"whatsapp://template_name:token@from_phone_id/to_phone_no/?:1=the data i want put here&:2=more data here"
# La forme :<id> permet d'associer les elements {{<id>}}. Si vous souhaitez mapper le body
# ou le type du message a un index, 2 mots-cles reserves sont disponibles pour cela :
# L'exemple ci-dessous place la valeur du body Apprise dans l'element {{1}} :
apprise -b "Message de Test" \
"whatsapp://template_name:token@from_phone_id/to_phone_no/?:body=1"
# Vous pouvez melanger mots-cles et index :
apprise -b "Message de Test" \
"whatsapp://template_name:token@from_phone_id/to_phone_no/?:body=2&:type=3&1:MyID1Value"
# Il revient au developpeur de s'assurer que tous les {{1}}, {{2}}, etc. sont correctement renseignes
Questions ou commentaires ?

Documentation

Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .

Problèmes Techniques

Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :

Conçu avec amour depuis le Canada