A Python SDK for seamless integration with PassInfo API, enabling secure message delivery and contact management
Project description
PasseInfo SDK
Un SDK Python puissant et intuitif pour une intégration transparente avec l'API PasseInfo, permettant une livraison de messages rapide, fiable et sécurisée à travers plusieurs canaux. Ce SDK simplifie les opérations de messagerie complexes en un code propre et maintenable, en faisant le choix idéal pour les entreprises recherchant des solutions de communication robustes.
Description
PasseInfo SDK est une bibliothèque Python puissante et conviviale conçue pour simplifier l'intégration des services de messagerie PasseInfo dans vos applications. Ce SDK abstrait la complexité des interactions directes avec l'API, offrant une interface propre et intuitive pour l'envoi de messages à travers différents canaux.
Le SDK gère toute l'authentification API nécessaire, le formatage des requêtes et l'analyse des réponses, permettant aux développeurs de se concentrer sur l'implémentation de leur logique de messagerie plutôt que de gérer les détails de bas niveau de l'API. Il fournit une gestion robuste des erreurs, des tentatives automatiques pour les requêtes échouées et des capacités complètes de journalisation.
Les principaux avantages de l'utilisation du SDK PasseInfo incluent :
- Intégration Simplifiée : Méthodes faciles à utiliser pour toutes les opérations de messagerie
- Sécurité des Types : Validation intégrée pour tous les paramètres API
- Configuration Flexible : Paramètres personnalisables pour différents cas d'utilisation
- Prêt pour la Production : Testé en conditions réelles dans des scénarios à haut volume
- Bien Documenté : Documentation complète avec des exemples pratiques
- Utilisation Efficace des Ressources : Optimisé pour gérer les messages uniques et en masse
Que vous envoyiez des messages transactionnels, des communications marketing ou des notifications système, PasseInfo SDK fournit les outils et la flexibilité dont vous avez besoin pour implémenter des fonctionnalités de messagerie robustes dans vos applications Python.
Fonctionnalités
- Envoi de messages individuels aux contacts
- Envoi en masse de messages à plusieurs contacts simultanément
- Envoi de messages à des groupes de contacts prédéfinis
- Suivi du statut de livraison des messages individuels et en masse
- Surveillance des statuts des lots de messages et rapports de livraison
- Gestion complète des erreurs
- Formatage et validation automatiques des requêtes
- Authentification API sécurisée
Installation
Le SDK PasseInfo peut être facilement installé via pip, le gestionnaire de paquets Python. Le SDK est compatible avec tous les principaux systèmes d'exploitation (Windows, macOS, Linux) et nécessite un minimum de dépendances. Avant l'installation, assurez-vous d'avoir Python 3.6 ou une version supérieure installée sur votre système.
Prérequis
- Python 3.6 ou supérieur
- Bibliothèque
requests
Installation via pip
pip install passinfo-sdk
Démarrage Rapide
Cette section vous guidera à travers les étapes essentielles pour commencer à utiliser le SDK PasseInfo dans votre application. Vous apprendrez à initialiser le client, envoyer des messages à des contacts individuels, des groupes, et gérer efficacement plusieurs destinataires. Avant de commencer, assurez-vous d'avoir :
- Installé le package SDK PasseInfo
- Obtenu vos identifiants API depuis le tableau de bord PasseInfo
- Une compréhension basique de la programmation Python
Initialiser le Client
Créez une nouvelle instance du client SDK PasseInfo avec vos identifiants API. Vous pouvez obtenir ces identifiants depuis votre tableau de bord PasseInfo :
Note : Gardez vos identifiants API sécurisés et ne les exposez jamais dans votre code. Utilisez des variables d'environnement ou une gestion de configuration sécurisée pour les déploiements en production.
Voici comment initialiser le client :
from passinfo_sdk import PassInfoSDKClient
client = PassInfoSDKClient(
api_key="your_api_key", # Votre clé API PasseInfo
client_id="your_client_id" # Votre ID client PasseInfo
)
Envoyer un Message Unique
Envoyez un message à un contact individuel. Cette méthode fournit un moyen simple de livrer des messages à des destinataires spécifiques :
response = client.send_message(
message="Hello World", # Contenu du message
contact="phoneNumber", # Numéro de téléphone du destinataire
sender_name="senderName" # Nom qui apparaît comme expéditeur
)
print(response)
# Exemple de sortie : {"status": "success", "message": "123"}
Paramètres
message(str) : Le contenu de votre message. Gardez-le clair et concis.contact(str) : Le numéro de téléphone du destinataire dans un format valide (ex : "622000001").sender_name(str) : Votre ID d'expéditeur que les destinataires verront.
Réponse
La méthode renvoie un dictionnaire contenant :
status: Statut de succès ou d'échec de l'opération d'envoimessage: Identifiant unique pour le suivi du message
Meilleures Pratiques
- Validez les numéros de téléphone avant l'envoi
- Gardez le contenu du message dans les limites de caractères
- Stockez le message_id pour le suivi des livraisons
- Gérez les erreurs API potentielles en utilisant des blocs try-except
Envoi de Messages en Masse
Envoyez un message à plusieurs contacts simultanément. Cette méthode fournit un moyen efficace de livrer le même message à plusieurs destinataires en un seul appel API :
contacts = ["622000001", "622000002", "622000003"]
response = client.send_message_bulk(
message="Hello Everyone", # Contenu du message
sender_name="senderName", # Nom qui apparaît comme expéditeur
contacts=contacts # Liste des numéros de téléphone des destinataires
)
print(response)
# Exemple de sortie : {"status": "success", "successful_sends": 3, "failed_sends": 0}
Paramètres
message(str) : Le contenu de votre message qui sera envoyé à tous les destinataires.sender_name(str) : Votre ID d'expéditeur qui apparaîtra comme expéditeur pour tous les destinataires.contacts(list) : Une liste de numéros de téléphone auxquels envoyer le message.
Réponse
La méthode renvoie un dictionnaire contenant :
status: Statut de succès ou d'échec de l'opération d'envoi en massesuccessful_sends: Nombre de messages mis en file d'attente avec succès pour la livraisonfailed_sends: Nombre de messages qui n'ont pas pu être mis en file d'attente
Meilleures Pratiques
- Gardez la taille de la liste de contacts raisonnable pour éviter les délais d'attente
- Validez tous les numéros de téléphone avant l'envoi
- Surveillez la réponse pour les envois échoués
- Implémentez une logique de réessai pour les livraisons échouées
Envoi de Message à un Groupe
Envoyez un message à un groupe prédéfini de contacts. Cette méthode vous permet de livrer efficacement des messages à des groupes qui ont été créés et gérés via votre tableau de bord PasseInfo :
response = client.send_message_group(
message="Hello Group", # Contenu du message
sender_name="senderName", # Nom qui apparaît comme expéditeur
group_id="groupId" # ID du groupe cible
)
print(response)
# Exemple de sortie : {"status": "success", "group_size": 50, "messages_queued": 50}
Paramètres
message(str) : Le contenu de votre message qui sera envoyé à tous les membres du groupe.sender_name(str) : Votre ID d'expéditeur qui apparaîtra comme expéditeur pour tous les membres du groupe.group_id(str) : L'identifiant unique de votre groupe cible (disponible dans le tableau de bord PasseInfo).
Réponse
La méthode renvoie un dictionnaire contenant :
status: Statut de succès ou d'échec de l'opération d'envoi au groupegroup_size: Nombre total de contacts dans le groupemessages_queued: Nombre de messages mis en file d'attente avec succès pour la livraison
Meilleures Pratiques
- Vérifiez l'existence du groupe avant l'envoi
- Gardez les tailles de groupe gérables
- Surveillez le statut de livraison pour les grands groupes
- Tenez compte des fuseaux horaires pour le timing des messages
Obtenir le Statut d'un Message
Suivez le statut de livraison d'un message unique en utilisant son ID unique :
response = client.get_message_status(
message_id="1234567890" # Identifiant unique du message
)
print(response)
# Exemple de sortie : {"status": "sent", "message_id": "1234567890"}
Paramètres
message_id(str) : L'identifiant unique du message à suivre, retourné lors de l'envoi du message.
Réponse
La méthode renvoie un dictionnaire contenant :
status: Statut actuel du message (ex : 'pending', 'sent', 'failed')message_id: L'identifiant unique du message suivi
Meilleures Pratiques
- Stockez les ID des messages pour les communications importantes
- Implémentez une interrogation du statut à intervalles appropriés
- Gérez tous les statuts possibles dans votre application
Obtenir le Statut des Messages en Masse
Suivez le statut de livraison de plusieurs messages envoyés en lot :
response = client.get_message_status_bulk(
batch_id="1234567890" # Identifiant unique du lot
)
print(response)
# Exemple de sortie : {"status": "processing", "successful": 45, "failed": 2, "pending": 3}
Paramètres
batch_id(str) : L'identifiant unique du lot de messages à suivre.
Réponse
La méthode renvoie un dictionnaire contenant :
status: Statut général du lotsuccessful: Nombre de messages livrés avec succèsfailed: Nombre de livraisons échouéespending: Nombre de messages encore en file d'attente
Meilleures Pratiques
- Stockez les ID de lot pour les opérations en masse
- Implémentez une logique de réessai pour les messages échoués
- Surveillez les taux et les modèles de livraison
- Configurez des alertes pour les taux d'échec élevés
Gestion des Erreurs
Le SDK fournit une gestion complète des erreurs via l'exception PassInfoAPIError :
from passinfo_sdk.exceptions import PassInfoAPIError
try:
response = client.send_message(
message="Hello World",
contact="phoneNumber",
sender_name="senderName"
)
except PassInfoAPIError as e:
print(f"Erreur {e.status_code}: {e.message}")
Vérifier le Solde de Crédits SMS
Vérifiez le solde de crédits SMS restant pour votre compte :
try:
remaining_credits = client.get_sms_count()
print(f"Il vous reste {remaining_credits} crédits SMS")
except PassInfoAPIError as e:
print(f"Erreur lors de la vérification du solde SMS : {e}")
Retourne
int: Le nombre de crédits SMS restants sur le compte. Retourne 0 si la requête échoue ou s'il n'y a pas de crédits disponibles.
Meilleures Pratiques
- Implémentez des vérifications régulières du solde pour assurer des crédits suffisants
- Configurez des alertes de solde bas dans votre application
- Gérez les erreurs API potentielles avec élégance
- Envisagez d'implémenter des mécanismes de recharge automatique de crédits
- Surveillez les modèles d'utilisation des crédits pour la planification de la capacité
Renouvellement de la Clé API
Faites pivoter votre clé API pour une sécurité renforcée en utilisant la méthode renew_api_key. Cette opération invalide votre clé API actuelle et en génère une nouvelle :
try:
response = client.renew_api_key()
if response.get('api_key'):
new_key = response['api_key']
print(f"Nouvelle clé API générée avec succès")
# Mettez à jour votre configuration avec la nouvelle clé
else:
print("Échec de la génération de la nouvelle clé API")
except PasseInfoAPIError as e:
print(f"Erreur lors du renouvellement de la clé API : {e}")
Retours
dict: Contient la nouvelle clé API dans la réponseapi_key(str) : La clé API nouvellement générée
Meilleures Pratiques
- Planifier des rotations régulières des clés (par exemple, tous les 90 jours)
- Mettre en œuvre des périodes de transition appropriées
- Stocker les nouvelles clés de manière sécurisée (par exemple, variables d'environnement)
- Mettre à jour toutes les instances d'application avec la nouvelle clé
- Maintenir un accès de secours pendant la rotation
- Journaliser tous les événements de rotation des clés
Directives d'Implémentation
-
Préparation
- Sauvegarder la configuration actuelle
- Planifier une fenêtre de maintenance si nécessaire
- S'assurer que tous les systèmes sont prêts pour la mise à jour
-
Exécution
- Générer une nouvelle clé API
- Valider la fonctionnalité de la nouvelle clé
- Mettre à jour les fichiers/variables de configuration
- Redémarrer les services affectés si nécessaire
-
Vérification
- Tester la connectivité API avec la nouvelle clé
- Surveiller les erreurs d'authentification
- Vérifier que tous les systèmes fonctionnent
-
Plan de Retour en Arrière
- Garder l'ancienne clé temporairement accessible
- Documenter les procédures de retour en arrière
- Mettre en place une surveillance des problèmes
Considérations de Sécurité
- Ne jamais journaliser ou afficher les clés API complètes
- Utiliser des canaux sécurisés pour la distribution des clés
- Mettre en œuvre un accès avec privilèges minimaux
- Surveiller l'utilisation non autorisée des clés
- Configurer des alertes pour les événements liés aux clés
Exemple d'Implémentation
from passinfo_sdk import PasseInfoSDKClient
from passinfo_sdk.exceptions import PasseInfoAPIError
import os
def rotate_api_key(client):
try:
# Générer une nouvelle clé
response = client.renew_api_key()
if not response.get('api_key'):
raise ValueError("Pas de clé API dans la réponse")
new_key = response['api_key']
# Valider la nouvelle clé
test_client = PasseInfoSDKClient(
api_key=new_key,
client_id=client.client_id
)
# Tester la nouvelle clé
test_client.get_sms_count()
# Mettre à jour la configuration
update_api_key_config(new_key)
print("Clé API pivotée avec succès")
return True
except PasseInfoAPIError as e:
print(f"Erreur lors de la rotation de la clé API : {e}")
return False
except Exception as e:
print(f"Erreur inattendue : {e}")
return False
def update_api_key_config(new_key):
# Mettre à jour la variable d'environnement
os.environ['PASSINFO_API_KEY'] = new_key
# Mettre à jour le fichier de configuration
# Implémentez votre logique de mise à jour de configuration ici
pass
Meilleures Pratiques
Gestion des Messages
- Implémenter une file d'attente de messages pour les scénarios à haut volume
- Utiliser le traitement par lots pour optimiser les performances
- Mettre en place des mécanismes de réessai avec backoff exponentiel
- Implémenter le suivi du statut de livraison des messages
- Gérer la priorité des messages selon les besoins métier
- Valider le contenu des messages avant l'envoi
Optimisation des Performances
- Utiliser le pooling de connexions pour une meilleure gestion des ressources
- Implémenter la mise en cache des données fréquemment utilisées
- Optimiser les tailles de lots pour les opérations en masse
- Surveiller et ajuster les limites de requêtes concurrentes
- Utiliser des opérations asynchrones lorsque
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file passinfo_sdk-1.0.2.tar.gz.
File metadata
- Download URL: passinfo_sdk-1.0.2.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54def95d7ed854444ce8745d5282367e8895cf5f6c023f19f2d540c4860045c1
|
|
| MD5 |
30f2407e85765a4006ee18050e834ff3
|
|
| BLAKE2b-256 |
c6ab59e8ff15e3d64323762c2ab1a78986f6f2a38e6c92e4da16e138522174cf
|
File details
Details for the file passinfo_sdk-1.0.2-py3-none-any.whl.
File metadata
- Download URL: passinfo_sdk-1.0.2-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32f367a1b56c36249886738232fe8fc2b50cdafd18d7b3915d919c783aee2332
|
|
| MD5 |
a102d00842b25b36cd115247682481ca
|
|
| BLAKE2b-256 |
b1e748bc5f5c576f98c535d1e704ea9c5635cddecda4cbba38bd1768ea4d9649
|