Twilio API에 대한 문서는 여기에서 찾을 수 있습니다.
파이썬 라이브러리 문서는 여기에서 찾을 수 있습니다.
twilio-python
모든 변경 사항에 대해 수정 된 시맨틱 버전을 사용합니다. 자세한 내용은이 문서를 참조하십시오.
이 라이브러리는 다음과 같은 파이썬 구현을 지원합니다.
Python의 패키지 관리자 인 PIP를 사용하여 PYPI에서 설치하십시오.
pip3 install twilio
PIP 설치가 Windows에서 실패하면 디렉토리의 경로 길이를 확인하십시오. 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 및 인증 토큰으로 인증 :
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 >
이 저장소에 존재하는 Dockerfile
및 각각의 twilio/twilio-python
Docker 이미지는 현재 Twilio에 의해 테스트 목적으로 만 사용됩니다.
도서관을 설치하거나 사용하는 데 도움이 필요한 경우 먼저 Twilio Support Help Center를 확인하고 질문에 대한 답변을 찾을 수없는 경우 지원 티켓을 제출하십시오.
대신 라이브러리에서 버그를 찾았거나 새로운 기능이 추가되기를 원한다면이 레포에 대한 문제를 열거 나 요청을 가져 오십시오!