Python >> Tutoriel Python >  >> Python

Comment envoyer des SMS avec Python

Les SMS (Short Message Service) sont omniprésents pour la communication dans le monde entier. Il est facile d'envoyer des SMS à partir d'une application Python à l'aide d'une interface de programmation d'application (API) Web. Examinons les outils dont nous avons besoin pour ajouter rapidement la fonctionnalité SMS à nos applications Python.

Outils dont nous avons besoin

Ce guide fonctionne à la fois avec Python 2 et 3, alors assurez-vous d'avoir installé l'une de ces deux versions.

  • Python 2 ou 3
  • pip et virtualenv pour gérer les dépendances des applications
  • Un compte Twilio gratuit pour utiliser leur API Web SMS
  • Bibliothèque d'assistance open source Twilio Python, version 6.0.0 ou ultérieure

Si vous avez besoin d'aide pour installer pip et virtualenv, consultez les premières étapes du guide de configuration de Python 3, Flask et Green Unicorn sur Ubuntu 16.04 LTS qui vous montrera comment installer les packages système pour ces outils.

Utiliser une API Web

Nous allons utiliser une API Web pour rendre l'envoi de SMS plus facile et plus fiable. Rendez-vous sur le site Web de Twilio et inscrivez-vous pour un compte d'essai gratuit (génial pour plus que l'envoi de SMS !), puis connectez-vous à votre compte existant.

Le compte d'essai Twilio vous permet d'envoyer des messages texte à votre propre numéro de téléphone validé. Lorsque vous souhaitez envoyer des SMS à n'importe quel numéro de téléphone dans votre pays ou dans d'autres pays, vous pouvez mettre à niveau votre compte pour envoyer des messages pour des fractions de centime.

Après votre inscription, vous obtiendrez un numéro de téléphone gratuit dans votre pays. Nous pouvons utiliser ce numéro de téléphone sans aucune configuration pour envoyer des SMS sortants. Vous pouvez également recevoir des SMS, mais cela nécessite de modifier le webhook d'URL de demande dans l'écran de configuration du numéro de téléphone - nous en parlerons dans un prochain article de blog.

Installation de notre dépendance

Notre code utilisera une bibliothèque d'assistance pour faciliter l'envoi de messages texte depuis Python. Nous allons installer la bibliothèque d'assistance dePyPI dans un virtualenv. Nous devons d'abord créer le fichier virtualenv. Dans votre terminal, utilisez la commande suivante pour créer un nouveau virtualenv. Si vous avez besoin d'installer virtualenv, jetez un œil au guide de configuration de Python 3, Flask et Green Unicorn sur Ubuntu 16.04 LTS.

virtualenv sendsms

Activez l'environnement virtuel.

source sendsms/bin/activate

L'invite de commande changera après avoir correctement activé le virtualenvto quelque chose comme ceci :

Installez maintenant la bibliothèque d'assistance Twilio Python. Nous utilisons la version 6.0.0 ou supérieure de la bibliothèque, ce qui est important car la syntaxe de cet article est rétro-incompatible avec les versions 5.x et précédentes de la bibliothèque d'assistance Twilio.

pip install twilio>=6.0.0

La bibliothèque d'assistance est maintenant installée et nous pouvons l'utiliser avec le code Python que nous créons et exécutons.

Envoi de SMS depuis Python

Lancez l'interpréteur Python dans le terminal en utilisant le python commande, ou créez un nouveau fichier nommé send_sms.py .

Nous devons récupérer les informations d'identification de notre compte dans la console Twilio pour connecter notre code Python à notre compte Twilio. Accédez à la console Twilio et copiez le SID du compte et le jeton d'authentification dans votre code Python.

Saisissez le code suivant dans l'interpréteur ou dans le nouveau fichier Python. Vous pouvez également copier et coller le code du référentiel Git blog-code-examples dans l'organisation Full Stack Python GitHub.

# we import the Twilio client from the dependency we just installed
from twilio.rest import Client

# the following line needs your Twilio Account SID and Auth Token
client = Client("ACxxxxxxxxxxxxxx", "zzzzzzzzzzzzz")

# change the "from_" number to your Twilio number and the "to" number
# to the phone number you signed up for Twilio with, or upgrade your
# account to send SMS to any phone number
client.messages.create(to="+19732644152", 
                       from_="+12023351278", 
                       body="Hello from Python!")

Toutes les lignes ci-dessus commençant par # sont des commentaires. Une fois que vous avez entré ce code dans l'interpréteur ou exécuté le script Python en utilisant python send_sms.py le SMS sera envoyé.

Dans quelques secondes, vous devriez voir un message apparaître sur votre téléphone. Je suis oniOS, alors voici à quoi ressemblait le SMS que j'ai reçu.

C'est ça! Vous pouvez ajouter ce code à n'importe quel code Python pour envoyer des messages texte. Gardez simplement votre jeton d'authentification secret car il permettra à quiconque le possède d'utiliser votre compte pour envoyer et recevoir des messages.

Des questions? Contactez-moi via Twitter@fullstackpythonor @mattmakai. Je suis également sur GitHub avec le nom d'utilisateur mattmakai.

Vous voyez quelque chose qui ne va pas dans ce message ? La source de cette page sur GitHuband soumet une pull request.