Die Dokumentation für die Twilio -API finden Sie hier.
Die Dokumentation der Python Library finden Sie hier.
twilio-python
verwendet eine modifizierte Version der semantischen Versioning für alle Änderungen. Weitere Informationen finden Sie in diesem Dokument.
Diese Bibliothek unterstützt die folgenden Python -Implementierungen:
Installieren Sie von PYPI mit PIP, einem Paketmanager für Python.
pip3 install twilio
Wenn die PIP -Installation unter Windows fehlschlägt, überprüfen Sie die Pfadlänge des Verzeichnisses. Wenn es größere 260 Zeichen ist, aktivieren Sie lange Pfade oder wählen Sie einen anderen kürzeren Standort.
Lassen Sie PIP nicht installieren? Versuchen Sie, es zu installieren, indem Sie dies aus der Befehlszeile ausführen:
curl https://bootstrap.pypa.io/get-pip.py | python
Oder Sie können den Quellcode (ZIP) für twilio-python
herunterladen und dann ausführen:
python3 setup.py install
Info Wenn in der Befehlszeile eine Fehlermeldung angezeigt wird, in der die Berechtigung abgelehnt wird, versuchen Sie die obigen Befehle mit
sudo
(z. B.sudo pip3 install twilio
).
Versuchen Sie, sich eine SMS -Nachricht zu senden. Speichern Sie das folgende Code -Beispiel mit einem Texteditor auf Ihrem Computer. Stellen Sie sicher, dass Sie das account_sid
, auth_token
und from_
der Telefonnummer mit Werten aus Ihrem Twilio -Konto aktualisieren. Die to
Telefonnummer ist Ihr eigenes Handy.
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 )
Speichern Sie die Datei als send_sms.py
. Im Terminal, cd
zu dem Verzeichnis, das die gerade gespeicherte Datei enthält, dann werden Sie ausgeführt:
python3 send_sms.py
Nach kurzer Verzögerung erhalten Sie die SMS auf Ihrem Telefon.
Warnung Es ist in Ordnung, Ihre Anmeldeinformationen beim lokalen Testen zu harten. Sie sollten jedoch Umgebungsvariablen verwenden, um sie geheim zu halten, bevor Sie Code oder Bereitstellung für die Produktion einsetzen. Weitere Informationen finden Sie unter der Festlegung von Umgebungsvariablen.
Der Twilio
-Kunde benötigt Ihre Twilio -Anmeldeinformationen. Sie können diese entweder direkt an den Konstruktor (siehe Code unten) oder über Umgebungsvariablen weitergeben.
Authentifizierung mit Konto SID und Auth Token:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
Authentifizierung mit API -Schlüssel und API -Geheimnis:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
Alternativ sucht ein Client
-Konstruktor ohne diese Parameter nach TWILIO_ACCOUNT_SID
und TWILIO_AUTH_TOKEN
-Variablen in der aktuellen Umgebung.
Wir empfehlen, Ihre Anmeldeinformationen als Umgebungsvariablen zu speichern. Warum? Sie müssen sich nie Sorgen machen, Ihre Anmeldeinformationen zu begehen und sie versehentlich an einem öffentlichen Ort zu veröffentlichen.
from twilio . rest import Client
client = Client ()
Um die globale Infrastruktur von Twilio zu nutzen, geben Sie die Zielregion und/oder die Kante für den Kunden an:
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
Ein Client
-Konstruktor ohne diese Parameter sucht auch nach Variablen TWILIO_REGION
und TWILIO_EDGE
in der aktuellen Umgebung.
Alternativ können Sie nach dem Bau des Twilio -Clients den Rand und/oder den Bereich angeben:
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
Dies führt dazu, dass die hostname
von api.twilio.com
zu api.sydney.au1.twilio.com
verwandelt wird.
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 )
Die Bibliothek kümmert sich automatisch mit Paging für Sie. Sammlungen wie calls
und messages
verfügen über list
und stream
-Methoden, die auf der Seite der Haube stehen. Mit list
und stream
können Sie die Anzahl der Empfangsdatensätze ( limit
) und die maximale Größe angeben, die jeder Seite abrufen soll ( page_size
). Die Bibliothek wird dann die Aufgabe für Sie übernehmen.
list
eifrig alle Aufzeichnungen ab und kehren sie als Liste zurück, während stream
einen Iterator zurückgibt und fault Seiten mit Datensätzen abruft, während Sie die Sammlung iterieren. Sie können auch die page
manuell manuell überstellen.
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 )
Standardmäßig stellt der Twilio -Client synchrone Anfragen an die Twilio -API. Um asynchrone, nicht blockierende Anforderungen zu ermöglichen, haben wir einen optionalen asynchronen HTTP-Client beigefügt. Bei Verwendung mit dem Client und den dazugehörigen *_async
-Methoden werden Anfragen an die Twilio -API asynchron durchgeführt.
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 ())
Protokollieren Sie die API -Anforderung und die Antwortdaten in der Konsole:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
Protokollieren Sie die API -Anforderungs- und Antwortdaten in einer Datei:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
Version 8.x von twilio-python
exportiert eine Ausnahmeklasse, mit der Sie Ausnahmen behandeln können, die für Twilio-Methoden spezifisch sind. Um es zu verwenden, importieren Sie TwilioRestException
und fangen Sie Ausnahmen wie folgt auf:
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 )
Um Telefonanrufe zu steuern, muss Ihre Bewerbung Twiml ausgeben.
Verwenden Sie twilio.twiml.Response
um solche Antworten einfach zu erstellen.
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 >
Das in diesem Repository und sein jeweilige twilio/twilio-python
Docker-Bild vorhandene Dockerfile
werden derzeit nur von Twilio zu Testzwecken verwendet.
Wenn Sie Hilfe bei der Installation oder Verwendung der Bibliothek benötigen, überprüfen Sie zuerst das Twilio Support Help Center und stellen Sie ein Support -Ticket ein, wenn Sie keine Antwort auf Ihre Frage finden.
Wenn Sie stattdessen einen Fehler in der Bibliothek gefunden haben oder neue Funktionen erweitern möchten, öffnen Sie Probleme oder ziehen Sie Anfragen gegen dieses Repo ab!