%global _empty_manifest_terminate_build 0
Name: python-twilio
Version: 8.0.0
Release: 1
Summary: Twilio API client and TwiML generator
License: MIT License
URL: https://github.com/twilio/twilio-python/
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/bb/2d/f89b714e176b470173bda0e1d90d9ffff4d4838281b35c08fad15728ea9b/twilio-8.0.0.tar.gz
BuildArch: noarch
Requires: python3-pytz
Requires: python3-requests
Requires: python3-PyJWT
Requires: python3-asyncio
Requires: python3-aiohttp
Requires: python3-aiohttp-retry
%description
# twilio-python
[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
## Documentation
The documentation for the Twilio API can be found [here][apidocs].
The Python library documentation can be found [here][libdocs].
## Versions
`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
### Migrating from 5.x
Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
### Supported Python Versions
This library supports the following Python implementations:
* Python 3.7
* Python 3.8
* Python 3.9
* Python 3.10
* Python 3.11
## Installation
Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
package manager for Python.
pip install twilio
If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
Don't have pip installed? Try installing it, by running this from the command
line:
$ curl https://bootstrap.pypa.io/get-pip.py | python
Or, you can [download the source code
(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
source code") for `twilio-python`, and then run:
python setup.py install
You may need to run the above commands with `sudo`.
## Getting Started
Getting started with the Twilio API couldn't be easier. Create a
`Client` and you're ready to go.
### API Credentials
The `Twilio` client needs your Twilio credentials. You can either pass these
directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
```python
from twilio.rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXX"
auth_token = "YYYYYYYYYYYYYYYYYY"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
Alternatively, a `Client` constructor without these parameters will
look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
current environment.
We suggest storing your credentials as environment variables. Why? You'll never
have to worry about committing your credentials and accidentally posting them
somewhere public.
```python
from twilio.rest import Client
client = Client()
```
### Specify Region and/or Edge
To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
```python
from twilio.rest import Client
client = Client(region='au1', edge='sydney')
```
A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
Alternatively, you may specify the edge and/or region after constructing the Twilio client:
```python
from twilio.rest import Client
client = Client()
client.region = 'au1'
client.edge = 'sydney'
```
This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
### Make a Call
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
call = client.calls.create(to="9991231234",
from_="9991231234",
url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
print(call.sid)
```
### Send an SMS
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
```
### Asynchronous API Requests
By default, the Twilio Client will make synchronous requests to the Twilio API. To allow for asynchronous, non-blocking requests, we've included an optional asynchronous HTTP client. When used with the Client and the accompanying `*_async` methods, requests made to the Twilio API will be performed asynchronously.
```python
from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
http_client = AsyncTwilioHttpClient()
client = Client(username, password, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
asyncio.run(main())
```
### Enable Debug Logging
Log the API request and response data to the console:
```python
import logging
client = Client(username, password)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
Log the API request and response data to a file:
```python
import logging
client = Client(username, password)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
except TwilioRestException as e:
print(e)
```
For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
### Generating TwiML
To control phone calls, your application needs to output [TwiML][twiml].
Use `twilio.twiml.Response` to easily create such responses.
```python
from twilio.twiml.voice_response import VoiceResponse
r = VoiceResponse()
r.say("Welcome to twilio!")
print(str(r))
```
```xml
Welcome to twilio!
```
### Using a Custom HTTP Client
To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
### Docker Image
The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
### Getting help
If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
[apidocs]: https://www.twilio.com/docs/api
[twiml]: https://www.twilio.com/docs/api/twiml
[libdocs]: https://twilio.github.io/twilio-python
%package -n python3-twilio
Summary: Twilio API client and TwiML generator
Provides: python-twilio
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-twilio
# twilio-python
[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
## Documentation
The documentation for the Twilio API can be found [here][apidocs].
The Python library documentation can be found [here][libdocs].
## Versions
`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
### Migrating from 5.x
Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
### Supported Python Versions
This library supports the following Python implementations:
* Python 3.7
* Python 3.8
* Python 3.9
* Python 3.10
* Python 3.11
## Installation
Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
package manager for Python.
pip install twilio
If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
Don't have pip installed? Try installing it, by running this from the command
line:
$ curl https://bootstrap.pypa.io/get-pip.py | python
Or, you can [download the source code
(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
source code") for `twilio-python`, and then run:
python setup.py install
You may need to run the above commands with `sudo`.
## Getting Started
Getting started with the Twilio API couldn't be easier. Create a
`Client` and you're ready to go.
### API Credentials
The `Twilio` client needs your Twilio credentials. You can either pass these
directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
```python
from twilio.rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXX"
auth_token = "YYYYYYYYYYYYYYYYYY"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
Alternatively, a `Client` constructor without these parameters will
look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
current environment.
We suggest storing your credentials as environment variables. Why? You'll never
have to worry about committing your credentials and accidentally posting them
somewhere public.
```python
from twilio.rest import Client
client = Client()
```
### Specify Region and/or Edge
To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
```python
from twilio.rest import Client
client = Client(region='au1', edge='sydney')
```
A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
Alternatively, you may specify the edge and/or region after constructing the Twilio client:
```python
from twilio.rest import Client
client = Client()
client.region = 'au1'
client.edge = 'sydney'
```
This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
### Make a Call
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
call = client.calls.create(to="9991231234",
from_="9991231234",
url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
print(call.sid)
```
### Send an SMS
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
```
### Asynchronous API Requests
By default, the Twilio Client will make synchronous requests to the Twilio API. To allow for asynchronous, non-blocking requests, we've included an optional asynchronous HTTP client. When used with the Client and the accompanying `*_async` methods, requests made to the Twilio API will be performed asynchronously.
```python
from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
http_client = AsyncTwilioHttpClient()
client = Client(username, password, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
asyncio.run(main())
```
### Enable Debug Logging
Log the API request and response data to the console:
```python
import logging
client = Client(username, password)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
Log the API request and response data to a file:
```python
import logging
client = Client(username, password)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
except TwilioRestException as e:
print(e)
```
For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
### Generating TwiML
To control phone calls, your application needs to output [TwiML][twiml].
Use `twilio.twiml.Response` to easily create such responses.
```python
from twilio.twiml.voice_response import VoiceResponse
r = VoiceResponse()
r.say("Welcome to twilio!")
print(str(r))
```
```xml
Welcome to twilio!
```
### Using a Custom HTTP Client
To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
### Docker Image
The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
### Getting help
If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
[apidocs]: https://www.twilio.com/docs/api
[twiml]: https://www.twilio.com/docs/api/twiml
[libdocs]: https://twilio.github.io/twilio-python
%package help
Summary: Development documents and examples for twilio
Provides: python3-twilio-doc
%description help
# twilio-python
[![Tests](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml/badge.svg)](https://github.com/twilio/twilio-python/actions/workflows/test-and-deploy.yml)
[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
[![Learn OSS Contribution in TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
## Documentation
The documentation for the Twilio API can be found [here][apidocs].
The Python library documentation can be found [here][libdocs].
## Versions
`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
### Migrating from 5.x
Please consult the [official migration guide](https://www.twilio.com/docs/libraries/python/migration-guide) for information on upgrading your application using twilio-python 5.x to 6.x
### Supported Python Versions
This library supports the following Python implementations:
* Python 3.7
* Python 3.8
* Python 3.9
* Python 3.10
* Python 3.11
## Installation
Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
package manager for Python.
pip install twilio
If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable [Long Paths](https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation) or choose other shorter location.
Don't have pip installed? Try installing it, by running this from the command
line:
$ curl https://bootstrap.pypa.io/get-pip.py | python
Or, you can [download the source code
(ZIP)](https://github.com/twilio/twilio-python/zipball/main "twilio-python
source code") for `twilio-python`, and then run:
python setup.py install
You may need to run the above commands with `sudo`.
## Getting Started
Getting started with the Twilio API couldn't be easier. Create a
`Client` and you're ready to go.
### API Credentials
The `Twilio` client needs your Twilio credentials. You can either pass these
directly to the constructor (see the code below) or via environment variables.
Authenticating with Account SID and Auth Token:
```python
from twilio.rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXX"
auth_token = "YYYYYYYYYYYYYYYYYY"
client = Client(account_sid, auth_token)
```
Authenticating with API Key and API Secret:
```python
from twilio.rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXX"
client = Client(api_key, api_secret, account_sid)
```
Alternatively, a `Client` constructor without these parameters will
look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
current environment.
We suggest storing your credentials as environment variables. Why? You'll never
have to worry about committing your credentials and accidentally posting them
somewhere public.
```python
from twilio.rest import Client
client = Client()
```
### Specify Region and/or Edge
To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
```python
from twilio.rest import Client
client = Client(region='au1', edge='sydney')
```
A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
Alternatively, you may specify the edge and/or region after constructing the Twilio client:
```python
from twilio.rest import Client
client = Client()
client.region = 'au1'
client.edge = 'sydney'
```
This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
### Make a Call
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
call = client.calls.create(to="9991231234",
from_="9991231234",
url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
print(call.sid)
```
### Send an SMS
```python
from twilio.rest import Client
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
```
### Asynchronous API Requests
By default, the Twilio Client will make synchronous requests to the Twilio API. To allow for asynchronous, non-blocking requests, we've included an optional asynchronous HTTP client. When used with the Client and the accompanying `*_async` methods, requests made to the Twilio API will be performed asynchronously.
```python
from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client
async def main():
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
http_client = AsyncTwilioHttpClient()
client = Client(username, password, http_client=http_client)
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
body="Hello there!")
asyncio.run(main())
```
### Enable Debug Logging
Log the API request and response data to the console:
```python
import logging
client = Client(username, password)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)
```
Log the API request and response data to a file:
```python
import logging
client = Client(username, password)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)
```
### Handling Exceptions
```python
from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException
username = "ACXXXXXXXXXXXXXXXXX"
password = "YYYYYYYYYYYYYYYYYY"
client = Client(username, password)
try:
message = client.messages.create(to="+12316851234", from_="+15555555555",
body="Hello there!")
except TwilioRestException as e:
print(e)
```
For more descriptive exception types, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/usage-guide#exceptions).
### Generating TwiML
To control phone calls, your application needs to output [TwiML][twiml].
Use `twilio.twiml.Response` to easily create such responses.
```python
from twilio.twiml.voice_response import VoiceResponse
r = VoiceResponse()
r.say("Welcome to twilio!")
print(str(r))
```
```xml
Welcome to twilio!
```
### Using a Custom HTTP Client
To use a custom HTTP client with this helper library, please see the [Twilio documentation](https://www.twilio.com/docs/libraries/python/custom-http-clients-python).
### Docker Image
The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
### Getting help
If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
[apidocs]: https://www.twilio.com/docs/api
[twiml]: https://www.twilio.com/docs/api/twiml
[libdocs]: https://twilio.github.io/twilio-python
%prep
%autosetup -n twilio-8.0.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-twilio -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Mon Apr 10 2023 Python_Bot - 8.0.0-1
- Package Spec generated