Twilio APIのドキュメントはこちらをご覧ください。
Pythonライブラリのドキュメントはこちらをご覧ください。
twilio-python
すべての変更に対して修正バージョンのセマンティックバージョンを使用しています。詳細については、このドキュメントを参照してください。
このライブラリは、次のPythonの実装をサポートしています。
PythonのパッケージマネージャーであるPIPを使用してPypiからインストールします。
pip3 install twilio
WindowsでPIPのインストールが失敗した場合は、ディレクトリのパス長を確認します。 260文字が大きい場合は、長いパスを有効にするか、他の短い場所を選択します。
PIPがインストールされていませんか?これをコマンドラインから実行して、インストールしてみてください。
curl https://bootstrap.pypa.io/get-pip.py | python
または、 twilio-python
用のソースコード(ZIP)をダウンロードして、次に実行できます。
python3 setup.py install
情報コマンドラインが許可を拒否するエラーメッセージを提供する場合、上記のコマンドを
sudo
で実行してみてください(たとえば、sudo pip3 install twilio
)。
SMSメッセージを送信してみてください。テキストエディターを使用して、次のコードサンプルをコンピューターに保存します。 twilioアカウントの値を持つaccount_sid
、 auth_token
、およびfrom_
電話番号を必ず更新してください。 to
番号はあなた自身の携帯電話になります。
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 )
ファイルをsend_sms.py
として保存します。ターミナルで、保存したファイルを含むディレクトリにcd
実行してから実行します。
python3 send_sms.py
短時間の遅延の後、携帯電話でテキストメッセージを受信します。
警告ローカルでテストするときに資格情報をハードコードすることは問題ありませんが、コードをコミットしたり、生産に展開する前に、環境変数を秘密にしておく必要があります。詳細については、環境変数を設定する方法をご覧ください。
Twilio
クライアントには、Twilioの資格情報が必要です。これらをコンストラクターに直接渡すことができます(以下のコードを参照)または環境変数を介して。
アカウントSIDおよびAUTHトークンで認証:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
APIキーとAPIの秘密を認証する:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
あるいは、これらのパラメーターのないClient
コンストラクターが、現在の環境内のTWILIO_ACCOUNT_SID
およびTWILIO_AUTH_TOKEN
変数を探します。
資格情報を環境変数として保存することをお勧めします。なぜ?資格情報をコミットし、誤ってどこかに公開されることを心配する必要はありません。
from twilio . rest import Client
client = Client ()
Twilioのグローバルインフラストラクチャを活用するには、クライアントのターゲット領域および/またはエッジを指定します。
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
これらのパラメーターのないClient
コンストラクターは、現在の環境内のTWILIO_REGION
およびTWILIO_EDGE
変数も探します。
または、Twilioクライアントを構築した後、エッジおよび/または領域を指定することもできます。
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
これにより、 hostname
がapi.twilio.com
から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 )
図書館は自動的にページングを処理します。 calls
やmessages
などのコレクションには、フードの下にあるページのlist
とstream
メソッドがあります。 list
とstream
両方で、受信するレコードの数( limit
)と、各ページフェッチ( page_size
)にする最大サイズを指定できます。その後、ライブラリはあなたのためのタスクを処理します。
list
すべてのレコードを熱心に取得し、リストとして返しますが、 stream
イテレーターを返し、コレクションを反復するときにレコードのページをゆっくりと取得します。 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 )
デフォルトでは、TwilioクライアントはTwilio APIに同期リクエストを行います。非同期の非ブロッキング要求を可能にするために、オプションの非同期HTTPクライアントを含めました。クライアントと付随する*_async
メソッドとともに使用すると、Twilio APIに行われたリクエストは非同期に実行されます。
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 ())
APIリクエストと応答データをコンソールにログに記録します。
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
APIリクエストと応答データをファイルにログに記録します。
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
twilio-python
のバージョン8.xは、Twilioメソッドに固有の例外を処理するのに役立つ例外クラスをエクスポートします。それを使用するには、次のようにTwilioRestException
をインポートし、例外をキャッチします。
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 )
電話を制御するには、アプリケーションがTWIMLを出力する必要があります。
twilio.twiml.Response
を使用して、そのような応答を簡単に作成します。
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 >
このリポジトリとそれぞれのtwilio/twilio-python
Docker画像に存在するDockerfile
、現在Twilioがテスト目的でのみ使用しています。
ライブラリのインストールまたは使用が必要な場合は、最初にTwilioサポートヘルプセンターを確認し、質問に対する回答が見つからない場合はサポートチケットを提出してください。
代わりにライブラリでバグを見つけた場合、または新機能を追加したい場合は、先に進んで問題を開いて、このリポジトリに対するリクエストをプルしてください!