Skip to Content
BibliothequesJavaScriptPremier pas 🚀

Guide d’intégration JavaScript

Ce guide vous accompagne dans l’intégration du SDK JavaScript Mon SMS PRO dans vos applications. Notre SDK est compatible avec Node.js, Next.js et la plupart des frameworks JavaScript modernes.

Installation

Pour commencer, installez le package via npm :

npm i @monsmspro/sdk

Vous pouvez également utiliser yarn (yarn add @monsmspro/sdk) ou pnpm (pnpm add @monsmspro/sdk) selon votre préférence.

Configuration de la sécurité

Pour une meilleure sécurité, nous recommandons d’utiliser des variables d’environnement pour gérer votre clé API. La plupart des frameworks modernes comme Next.js intègrent déjà le support des fichiers .env.

Configuration des variables d’environnement

  1. Créez un fichier .env à la racine de votre projet :
touch .env
  1. Ajoutez votre clé API au fichier .env :
.env
MONSMS_API_KEY="your_api_key" MONSMS_COMPANY_ID="your_company_id"

N’oubliez pas d’ajouter .env à votre .gitignore pour éviter de committer accidentellement votre clé API.

Initialisation du SDK

Créez une instance du SDK dans un fichier dédié pour une meilleure organisation de votre code :

./libs/sms.ts
import { MonSMSPRO } from "@monsmspro/sdk"; export const sms = new MonSMSPRO({ apiKey: process.env["MONSMS_API_KEY"] ?? "", companyId: process.env["MONSMS_COMPANY_ID"] ?? "", });

Le SDK utilise fetch natif et n’a aucune dépendance externe. Pour Node.js < 18, vous pouvez fournir une implémentation fetch personnalisée via l’option fetchFn.

Le companyId fourni lors de l’initialisation est automatiquement injecté dans tous les appels liés à l’entreprise (contacts, groupes, campagnes, sender, etc.). Vous n’avez pas besoin de le passer manuellement à chaque appel de méthode.

Bonnes pratiques

  • Sécurité : Utilisez toujours des variables d’environnement pour la clé API
  • Organisation : Centralisez l’instance du SDK dans un fichier dédié
  • TypeScript : Le SDK est entièrement typé pour une meilleure expérience de développement
  • Réutilisation : Importez l’instance sms là où vous en avez besoin

Exemple d’utilisation

import { sms } from "./libs/sms"; // Envoyer un OTP async function sendOTP() { const response = await sms.otp.get({ phoneNumber: "0701020304", }); if (response.success) { console.log("OTP envoyé, token:", response.data?.token); } else { console.error("Erreur:", response.error); } } // Créer un contact async function createContact() { const response = await sms.contact.createSingle({ phone: "0701020304", name: "John Doe", }); if (response.success) { console.log("Contact créé:", response.data); } } // Envoyer une campagne SMS async function sendCampaign() { const response = await sms.campaign.create({ text: "Bonjour {name}, votre commande est prête !", senderId: "MonShop", contacts: ["contact_id_1", "contact_id_2"], }); if (response.success) { console.log("Campagne créée:", response.data); } }

Format de réponse

Toutes les méthodes retournent un objet ApiResponse<T> :

interface ApiResponse<T> { success: boolean; // Indique si la requête a réussi data?: T; // Les données retournées error?: string; // Message d'erreur en cas d'échec isZodError?: boolean; // Erreur de validation }

Modules disponibles

ModuleDescription
sms.authAuthentification et vérification API
sms.otpEnvoi et vérification OTP
sms.userGestion des utilisateurs
sms.companyGestion des entreprises
sms.campaignEnvoi de campagnes SMS
sms.contactGestion des contacts
sms.groupGestion des groupes de contacts
sms.senderGestion des Sender IDs
sms.senderTransferTransfert de Sender IDs
sms.transactionTransactions et paiements
sms.offerOffres de crédits
sms.deviceGestion des appareils
sms.aiOptimisation de messages par IA
sms.challengesChallenges (gamification)
sms.dailyTasksTâches quotidiennes (gamification)
sms.followerLe Rezo (abonnés)

Support des frameworks

Notre SDK est compatible avec :

  • Node.js : Applications backend et scripts
  • Next.js : Applications full-stack
  • React : Applications frontend (côté serveur uniquement)
  • Express : Applications API
  • NestJS : Applications enterprise
  • TypeScript : Support natif des types

Prochaines étapes

Explorez les guides détaillés pour chaque module :

Last updated on