Документацию для API Twilio можно найти здесь.
Документацию библиотеки Python можно найти здесь.
twilio-python
использует модифицированную версию семантической версии для всех изменений. Смотрите этот документ для деталей.
Эта библиотека поддерживает следующие реализации Python:
Установите из PYPI с помощью PIP, диспетчера пакетов для Python.
pip3 install twilio
Если установка PIP не удается в Windows, проверьте длину пути каталога. Если это больше 260 символов, тогда включите длинные пути или выберите другое более короткое местоположение.
У вас не установлен PIP? Попробуйте установить его, запустив это из командной строки:
curl https://bootstrap.pypa.io/get-pip.py | python
Или вы можете скачать исходный код (ZIP) для twilio-python
, а затем запустить:
python3 setup.py install
Информация Если командная строка дает вам сообщение об ошибке, в котором говорится, что разрешение отказано, попробуйте запустить вышеуказанные команды с помощью
sudo
(например,sudo pip3 install twilio
).
Попробуйте отправить себе сообщение SMS. Сохраните следующий пример кода на ваш компьютер с помощью текстового редактора. Обязательно обновите account_sid
, auth_token
и from_
НОМЕРСКИЙ ТЕЛЕФОР со значениями из вашей учетной записи Twilio. Номер 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 и Token Auth:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
Аутентификация с API Key и API Secret:
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 будет делать синхронные запросы в API Twilio. Чтобы разрешить асинхронные, не блокирующие запросы, мы включили дополнительного асинхронного клиента HTTP. При использовании с клиентом и сопутствующими *_async
-методами запросы, сделанные в API Twilio, будут выполняться асинхронно.
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 )
Версия 8.X Экспорта twilio-python
Класс исключений, который поможет вам справиться с исключениями, специфичными для методов 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 и подайте билет на поддержку, если вы не найдете ответа на свой вопрос.
Если вместо этого вы нашли ошибку в библиотеке или хотели бы добавить новые функции, откройте проблемы или выберете запросы против этого репо!