La documentación para la API de Twilio se puede encontrar aquí.
La documentación de la biblioteca de Python se puede encontrar aquí.
twilio-python
utiliza una versión modificada de versiones semánticas para todos los cambios. Vea este documento para más detalles.
Esta biblioteca admite las siguientes implementaciones de Python:
Instale desde Pypi usando PIP, un administrador de paquetes para Python.
pip3 install twilio
Si la instalación de PIP falla en Windows, verifique la longitud de la ruta del directorio. Si es mayor 260 caracteres, habilite los caminos largos o elija otra ubicación más corta.
¿No tienes PIP instalado? Intente instalarlo, ejecutando esto desde la línea de comando:
curl https://bootstrap.pypa.io/get-pip.py | python
O puede descargar el código fuente (ZIP) para twilio-python
, y luego ejecutar:
python3 setup.py install
Información Si la línea de comando le da un mensaje de error que dice el permiso denegado, intente ejecutar los comandos anteriores con
sudo
(por ejemplo,sudo pip3 install twilio
).
Intente enviarse un mensaje SMS. Guarde la siguiente muestra de código en su computadora con un editor de texto. Asegúrese de actualizar la account_sid
, auth_token
y from_
el número de teléfono con valores de su cuenta Twilio. El número de teléfono to
será su propio teléfono móvil.
from twilio . rest import Client
# Your Account SID and Auth Token from console.twilio.com
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
message = client . messages . create (
to = "+15558675309" ,
from_ = "+15017250604" ,
body = "Hello from Python!" )
print ( message . sid )
Guarde el archivo como send_sms.py
. En el terminal, cd
al directorio que contiene el archivo que acaba de guardar y luego ejecuta:
python3 send_sms.py
Después de un breve retraso, recibirá el mensaje de texto en su teléfono.
Advierte que está bien encender sus credenciales al probar localmente, pero debe usar las variables de entorno para mantenerlas en secreto antes de cometer cualquier código o implementarlos en la producción. Consulte cómo establecer las variables de entorno para obtener más información.
El cliente Twilio
necesita sus credenciales de Twilio. Puede pasarlos directamente al constructor (consulte el código a continuación) o mediante variables de entorno.
Autenticación con cuenta SID y Auth Token:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
Autenticación con la clave API y el secreto API:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
Alternativamente, un constructor Client
sin estos parámetros buscará variables TWILIO_ACCOUNT_SID
y TWILIO_AUTH_TOKEN
dentro del entorno actual.
Sugerimos almacenar sus credenciales como variables de entorno. ¿Por qué? Nunca tendrá que preocuparse por cometer sus credenciales y publicarlas accidentalmente en algún lugar público.
from twilio . rest import Client
client = Client ()
Para aprovechar la infraestructura global de Twilio, especifique la región objetivo y/o la ventaja para el cliente:
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
Un constructor Client
sin estos parámetros también buscará variables TWILIO_REGION
y TWILIO_EDGE
dentro del entorno actual.
Alternativamente, puede especificar el borde y/o la región después de construir el cliente Twilio:
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
Esto dará como resultado el hostname
que se transforma de api.twilio.com
a api.sydney.au1.twilio.com
.
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . create ( to = "9991231234" ,
from_ = "9991231234" ,
url = "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient" )
print ( call . sid )
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . get ( "CA42ed11f93dc08b952027ffbc406d0868" )
print ( call . to )
La biblioteca maneja automáticamente la paginación para usted. Las colecciones, como calls
y messages
, tienen métodos list
y stream
que se realizan bajo el capó. Con list
y stream
, puede especificar el número de registros que desea recibir ( limit
) y el tamaño máximo que desea que sea cada página de recuperación ( page_size
). La biblioteca luego manejará la tarea por usted.
list
obtiene ansiosamente todos los registros y los devuelve como una lista, mientras que stream
devuelve un iterador y recupera perezosamente páginas de registros a medida que itera sobre la colección. También puede página utilizando manualmente el método page
.
list
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
for sms in client . messages . list ():
print ( sms . to )
Por defecto, el cliente Twilio hará solicitudes sincrónicas a la API de Twilio. Para permitir solicitudes asincrónicas y sin bloqueo, hemos incluido un cliente HTTP asincrónico opcional. Cuando se usa con el cliente y los métodos *_async
acompañantes, las solicitudes realizadas a la API Twilio se realizarán de manera asincrónica.
from twilio . http . async_http_client import AsyncTwilioHttpClient
from twilio . rest import Client
async def main ():
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient ()
client = Client ( account_sid , auth_token , http_client = http_client )
message = await client . messages . create_async ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
asyncio . run ( main ())
Registre los datos de solicitud y respuesta de API a la consola:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
Registre los datos de solicitud y respuesta de API a un archivo:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
La versión 8.x de twilio-python
exporta una clase de excepción para ayudarlo a manejar excepciones específicas de los métodos de Twilio. Para usarlo, importe TwilioRestException
y Catch Excepciones de la siguiente manera:
from twilio . rest import Client
from twilio . base . exceptions import TwilioRestException
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
try :
message = client . messages . create ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
except TwilioRestException as e :
print ( e )
Para controlar las llamadas telefónicas, su aplicación debe generar TWIML.
Use twilio.twiml.Response
para crear fácilmente tales respuestas.
from twilio . twiml . voice_response import VoiceResponse
r = VoiceResponse ()
r . say ( "Welcome to twilio!" )
print ( str ( r ))
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< Response >< Say >Welcome to twilio!</ Say ></ Response >
El Dockerfile
presente en este repositorio y su imagen respectiva twilio/twilio-python
Docker son actualmente utilizadas por Twilio solo para fines de prueba.
Si necesita ayuda para instalar o usar la biblioteca, consulte primero el Centro de ayuda de soporte de Twilio y presente un boleto de soporte si no encuentra una respuesta a su pregunta.
Si en su lugar ha encontrado un error en la biblioteca o desea que se agregaran nuevas funciones, continúe y abra problemas o extraiga solicitudes contra este repositorio.