A documentação para a API do Twilio pode ser encontrada aqui.
A documentação da biblioteca Python pode ser encontrada aqui.
twilio-python
usa uma versão modificada do versão semântica para todas as alterações. Veja este documento para obter detalhes.
Esta biblioteca suporta as seguintes implementações do Python:
Instale a Pypi usando o PIP, um gerenciador de pacotes para Python.
pip3 install twilio
Se a instalação do PIP falhar no Windows, verifique o comprimento do caminho do diretório. Se houver 260 caracteres maiores, ative caminhos longos ou escolha outro local mais curto.
Não tem o PIP instalado? Tente instalá -lo, executando isso na linha de comando:
curl https://bootstrap.pypa.io/get-pip.py | python
Ou você pode baixar o código-fonte (ZIP) para twilio-python
e depois executar:
python3 setup.py install
Informações Se a linha de comando fornecer uma mensagem de erro que diz a permissão negada, tente executar os comandos acima com
sudo
(por exemplo,sudo pip3 install twilio
).
Tente enviar uma mensagem SMS. Salve o seguinte exemplo de código no seu computador com um editor de texto. Certifique -se de atualizar o número de telefone account_sid
, auth_token
e from_
com valores da sua conta Twilio. O número to
telefone será seu próprio telefone celular.
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 )
Salve o arquivo como send_sms.py
. No terminal, cd
para o diretório que contém o arquivo que você acabou de salvar e executa:
python3 send_sms.py
Após um breve atraso, você receberá a mensagem de texto no seu telefone.
Aviso Não há problema em codificar suas credenciais ao testar localmente, mas você deve usar variáveis de ambiente para mantê -las em segredo antes de comprometer qualquer código ou implantar na produção. Confira como definir variáveis de ambiente para obter mais informações.
O cliente Twilio
precisa de suas credenciais do Twilio. Você pode passá -los diretamente para o construtor (consulte o código abaixo) ou através de variáveis de ambiente.
Autenticando com a conta SID e o token de autenticação:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
Autentação com a chave da API e o segredo da API:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
Como alternativa, um construtor Client
sem esses parâmetros procurará variáveis TWILIO_ACCOUNT_SID
e TWILIO_AUTH_TOKEN
dentro do ambiente atual.
Sugerimos armazenar suas credenciais como variáveis de ambiente. Por que? Você nunca precisará se preocupar em cometer suas credenciais e publicá -las acidentalmente em algum lugar público.
from twilio . rest import Client
client = Client ()
Para aproveitar a infraestrutura global da Twilio, especifique a região de destino e/ou Edge para o cliente:
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
Um construtor Client
sem esses parâmetros também procurará as variáveis TWILIO_REGION
e TWILIO_EDGE
dentro do ambiente atual.
Como alternativa, você pode especificar a borda e/ou a região após a construção do cliente Twilio:
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
Isso resultará no hostname
transformando de api.twilio.com
para 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 )
A biblioteca lida automaticamente na paginação para você. Coleções, como calls
e messages
, possuem métodos list
e stream
dessa página sob o capô. Com list
e stream
, você pode especificar o número de registros que deseja receber ( limit
) e o tamanho máximo que deseja que cada página é buscar ( page_size
). A biblioteca lidará com a tarefa para você.
list
busca ansiosamente todos os registros e os devolve como uma lista, enquanto stream
retorna um iterador e recupera preguiçosamente páginas de registros enquanto você itera sobre a coleção. Você também pode página usando manualmente o 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 padrão, o cliente Twilio fará solicitações síncronas à API do Twilio. Para permitir solicitações assíncronas e sem bloqueio, incluímos um cliente HTTP assíncrono opcional. Quando usado com o cliente e os métodos *_async
, solicitações feitas à API do Twilio serão executadas de forma assíncrona.
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 os dados de solicitação e resposta da API no console:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
Registre os dados de solicitação e resposta da API em um arquivo:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
Versão 8.x do twilio-python
Exporta uma classe de exceção para ajudá-lo a lidar com exceções específicas dos métodos Twilio. Para usá -lo, importe TwilioRestException
e capturar exceções da seguinte maneira:
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 as chamadas telefônicas, seu aplicativo precisa gerar TWIML.
Use twilio.twiml.Response
para criar facilmente essas respostas.
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 >
O Dockerfile
presente neste repositório e sua respectiva imagem do Docker twilio/twilio-python
são atualmente usados pelo Twilio apenas para fins de teste.
Se precisar de ajuda para instalar ou usar a biblioteca, verifique primeiro o centro de ajuda para suporte do Twilio e registre um ticket de suporte se não encontrar uma resposta para sua pergunta.
Se você encontrou um bug na biblioteca ou gostaria de adicionar novos recursos, vá em frente e abra problemas ou puxe solicitações contra este repositório!