peelo
v1.1.0
Published
SDK officiel pour l'API WhatsApp Peelo
Readme
Peelo SDK
SDK officiel pour intégrer l'API WhatsApp de Peelo dans vos applications Node.js.
Installation
npm install peeloFonctionnalités
- Envoi simplifié de messages (Texte, Image, Vidéo, Document, Audio, Localisation, Template)
- Rate Limiting automatique : Le SDK gère automatiquement la file d'attente pour ne pas dépasser les limites de l'API (défaut: 10 requêtes/seconde).
Utilisation
Initialisation
const { PeeloClient } = require('peelo');
const client = new PeeloClient('pk_votre_cle_api');Envoyer un message texte
await client.sendText('221771234567', 'Bonjour ceci est un test!');
'Menu du Restaurant' // Titre optionnel
);Templates Avancés (Marketing & Utility)
Pour simplifier l'envoi de templates avec des variables ({{1}}, {{2}}) et des images d'en-tête.
// Template Marketing (Image + Variables)
// Exemple: "Bonjour {{1}}, voici notre offre {{2}}..." avec une image
await client.sendMarketingTemplate(
'221771234567',
'promo_vacances', // Nom du template
'fr', // Langue
'https://site.com/promo.jpg', // Image d'en-tête (ou null)
['Jean', '-50%'] // Variables: {{1}}=Jean, {{2}}=-50%
);
// Template Utility (Variables seulement)
// Exemple: "Votre code est {{1}}"
await client.sendUtilityTemplate(
'221771234567',
'auth_code',
'fr',
'fr',
{
code: '123456',
user: 'Jean'
}
);
// Template Simple (Sans variable)
await client.sendUtilityTemplate('221771234567', 'simple_notif', 'fr');Autres types de messages
// Image
await client.sendImage('221771234567', 'https://example.com/image.jpg', 'Ma légende');
// Document
await client.sendDocument('221771234567', 'https://example.com/facture.pdf', 'facture.pdf');
// Localisation
await client.sendLocation('221771234567', 14.6928, -17.4467, 'Dakar', 'Sénégal');
// Template
await client.sendTemplate('221771234567', 'hello_world', 'fr');
// Sticker
await client.sendSticker('221771234567', 'https://example.com/sticker.webp');
// Réaction
await client.sendReaction('221771234567', 'wamid.HBg...', '❤️');
// Marquer comme Lu
await client.markAsRead('wamid.HBg...');
### Messages Interactifs
// Boutons (Réponse rapide)
await client.sendReplyButtons('221771234567', 'Confirmez-vous ?', {
'btn_yes': 'Oui',
'btn_no': 'Non'
});
// Demande de Localisation
await client.sendLocationRequest('221771234567', 'Veuillez partager votre localisation');
// Liste de choix (Menu)
await client.sendList(
'221771234567',
'Choisissez un produit',
'Voir le menu',
[
{
title: 'Nos Pizzas',
rows: [
{ id: 'piz_1', title: 'Marguerite', description: 'Tomate, Mozza' },
{ id: 'piz_2', title: 'Reine', description: 'Tomate, Mozza, Jambon' }
]
}
],
'Menu du Restaurant' // Titre optionnel
);Gestion des Erreurs
Les méthodes retournent une Promise. Assurez-vous d'utiliser try/catch.
try {
const response = await client.sendText('221771234567', 'Hello');
console.log('Message ID:', response.data.messages[0].id);
} catch (error) {
console.error('Erreur:', error.message);
}