Skip to Content
BibliothequesDartPremier pas 🚀

Guide d’intégration Dart/Flutter

Ce guide vous accompagne dans l’intégration du SDK Dart Mon SMS PRO dans vos applications Flutter. Notre SDK offre une couverture complète de l’API avec support du stockage local via Hive.

Installation

Ajoutez le package à votre pubspec.yaml :

pubspec.yaml
dependencies: mon_sms_pro: ^0.2.1

Puis exécutez :

flutter pub get

Vous pouvez également utiliser flutter pub add mon_sms_pro ou dart pub add mon_sms_pro pour ajouter la dépendance automatiquement.

Configuration de la sécurité

Pour stocker votre clé API de manière sécurisée, utilisez le package flutter_dotenv  :

flutter pub add flutter_dotenv

Créez un fichier .env à la racine de votre projet :

.env
API_KEY="your_api_key" COMPANY_ID="your_company_id"

Ajoutez le fichier .env à vos assets dans pubspec.yaml :

pubspec.yaml
flutter: assets: - .env

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

Chargez les variables d’environnement dans votre fonction main :

lib/main.dart
import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await dotenv.load(fileName: ".env"); runApp(const MyApp()); }

Initialisation du SDK

Créez une instance du SDK dans un fichier dédié :

lib/utils/sms.dart
import 'package:mon_sms_pro/mon_sms_pro.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; final sms = MonSMSPRO( apiKey: dotenv.env['API_KEY'] ?? "", companyId: dotenv.env['COMPANY_ID'], );

Le paramètre companyId est optionnel. S’il est fourni, il sera automatiquement injecté dans tous les appels liés à l’entreprise (contacts, groupes, campagnes, senders, transactions, etc.), vous n’aurez plus besoin de le passer manuellement à chaque appel.

Le SDK utilise Dio pour les requêtes HTTP. Toutes les méthodes retournent un ApiResponseModel<T> avec les propriétés success, data et error.

Format de réponse

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

final response = await sms.otp.get(phoneNumber: '0701020304'); if (response.success) { final otp = response.data; print('Token: ${otp?.token}'); } else { print('Erreur: ${response.error}'); }

Stockage local avec Hive (optionnel)

Si vous souhaitez utiliser Hive pour le cache local :

flutter pub add hive_ce hive_ce_flutter

Initialisez Hive dans votre fonction main :

lib/main.dart
import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:mon_sms_pro/hive.dart'; import 'package:hive_ce_flutter/hive_flutter.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Hive.initFlutter(); await initHiveAdapters(); await dotenv.load(fileName: ".env"); runApp(const MyApp()); }

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)

Exemple d’utilisation

import 'package:mon_sms_pro/mon_sms_pro.dart'; final sms = MonSMSPRO( apiKey: 'YOUR_API_KEY', companyId: 'YOUR_COMPANY_ID', // optionnel, auto-injecté dans les appels ); // Envoyer un OTP Future<void> sendOTP() async { final response = await sms.otp.get( phoneNumber: '0701020304', length: 6, mode: 'NUMERIC', ); if (response.success) { print('OTP envoyé, token: ${response.data?.token}'); } } // Créer un contact Future<void> createContact() async { final response = await sms.contact.createSingle( phone: '0701020304', name: 'John Doe', ); if (response.success) { print('Contact créé: ${response.data?.name}'); } } // Envoyer une campagne Future<void> sendCampaign() async { final response = await sms.campaign.create( text: 'Bonjour {name}, votre commande est prête !', senderId: 'MonShop', contacts: [ContactModel(phone: '0701020304')], ); if (response.success) { print('Campagne créée !'); } }

Prochaines étapes

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

Last updated on