Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 09ac07d

Browse filesBrowse files
committed
chore: gameday release
1 parent a2b5324 commit 09ac07d
Copy full SHA for 09ac07d

File tree

4 files changed

+9
-447
lines changed
Filter options

4 files changed

+9
-447
lines changed

‎CHANGES.md

Copy file name to clipboardExpand all lines: CHANGES.md
+6Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ twilio-python Changelog
33

44
Here you can see the full list of changes between each twilio-python release.
55

6+
[2025-04-09] Version 8.0.0-rc.2
7+
--------------------------
8+
**Library**
9+
- Test Release must not be used
10+
11+
612
[2025-04-07] Version 9.5.2
713
--------------------------
814
**Studio**

‎README.md

Copy file name to clipboard
+1-303Lines changed: 1 addition & 303 deletions
Original file line numberDiff line numberDiff line change
@@ -1,305 +1,3 @@
11
# twilio-python
22

3-
[![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)
4-
[![PyPI](https://img.shields.io/pypi/v/twilio.svg)](https://pypi.python.org/pypi/twilio)
5-
[![PyPI](https://img.shields.io/pypi/pyversions/twilio.svg)](https://pypi.python.org/pypi/twilio)
6-
[![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)
7-
8-
## Documentation
9-
10-
The documentation for the Twilio API can be found [here][apidocs].
11-
12-
The Python library documentation can be found [here][libdocs].
13-
14-
## Versions
15-
16-
`twilio-python` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
17-
18-
### Supported Python Versions
19-
20-
This library supports the following Python implementations:
21-
22-
- Python 3.7
23-
- Python 3.8
24-
- Python 3.9
25-
- Python 3.10
26-
- Python 3.11
27-
28-
## Installation
29-
30-
Install from PyPi using [pip](https://pip.pypa.io/en/latest/), a
31-
package manager for Python.
32-
33-
```shell
34-
pip3 install twilio
35-
```
36-
37-
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.
38-
39-
Don't have pip installed? Try installing it, by running this from the command
40-
line:
41-
42-
```shell
43-
curl https://bootstrap.pypa.io/get-pip.py | python
44-
```
45-
46-
Or, you can [download the source code
47-
(ZIP)](https://github.com/twilio/twilio-python/zipball/main 'twilio-python
48-
source code') for `twilio-python`, and then run:
49-
50-
```shell
51-
python3 setup.py install
52-
```
53-
54-
> **Info**
55-
> If the command line gives you an error message that says Permission Denied, try running the above commands with `sudo` (e.g., `sudo pip3 install twilio`).
56-
57-
### Test your installation
58-
59-
Try sending yourself an SMS message. Save the following code sample to your computer with a text editor. Be sure to update the `account_sid`, `auth_token`, and `from_` phone number with values from your [Twilio account](https://console.twilio.com). The `to` phone number will be your own mobile phone.
60-
61-
```python
62-
from twilio.rest import Client
63-
64-
# Your Account SID and Auth Token from console.twilio.com
65-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
66-
auth_token = "your_auth_token"
67-
68-
client = Client(account_sid, auth_token)
69-
70-
message = client.messages.create(
71-
to="+15558675309",
72-
from_="+15017250604",
73-
body="Hello from Python!")
74-
75-
print(message.sid)
76-
```
77-
78-
Save the file as `send_sms.py`. In the terminal, `cd` to the directory containing the file you just saved then run:
79-
80-
```shell
81-
python3 send_sms.py
82-
```
83-
84-
After a brief delay, you will receive the text message on your phone.
85-
86-
> **Warning**
87-
> It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
88-
89-
## OAuth Feature for Twilio APIs
90-
We are introducing Client Credentials Flow-based OAuth 2.0 authentication. This feature is currently in beta and its implementation is subject to change.
91-
92-
API examples [here](https://github.com/twilio/twilio-python/blob/main/examples/public_oauth.py)
93-
94-
Organisation API examples [here](https://github.com/twilio/twilio-python/blob/main/examples/organization_api.py)
95-
96-
## Use the helper library
97-
98-
### API Credentials
99-
100-
The `Twilio` client needs your Twilio credentials. You can either pass these directly to the constructor (see the code below) or via environment variables.
101-
102-
Authenticating with Account SID and Auth Token:
103-
104-
```python
105-
from twilio.rest import Client
106-
107-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
108-
auth_token = "your_auth_token"
109-
client = Client(account_sid, auth_token)
110-
```
111-
112-
Authenticating with API Key and API Secret:
113-
114-
```python
115-
from twilio.rest import Client
116-
117-
api_key = "XXXXXXXXXXXXXXXXX"
118-
api_secret = "YYYYYYYYYYYYYYYYYY"
119-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
120-
client = Client(api_key, api_secret, account_sid)
121-
```
122-
123-
Alternatively, a `Client` constructor without these parameters will
124-
look for `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` variables inside the
125-
current environment.
126-
127-
We suggest storing your credentials as environment variables. Why? You'll never
128-
have to worry about committing your credentials and accidentally posting them
129-
somewhere public.
130-
131-
```python
132-
from twilio.rest import Client
133-
client = Client()
134-
```
135-
136-
### Specify Region and/or Edge
137-
138-
To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and Edge for the client:
139-
140-
> **Note:** When specifying a `region` parameter for a helper library client, be sure to also specify the `edge` parameter. For backward compatibility purposes, specifying a `region` without specifying an `edge` will result in requests being routed to US1.
141-
142-
```python
143-
from twilio.rest import Client
144-
145-
client = Client(region='au1', edge='sydney')
146-
```
147-
148-
A `Client` constructor without these parameters will also look for `TWILIO_REGION` and `TWILIO_EDGE` variables inside the current environment.
149-
150-
Alternatively, you may specify the edge and/or region after constructing the Twilio client:
151-
152-
```python
153-
from twilio.rest import Client
154-
155-
client = Client()
156-
client.region = 'au1'
157-
client.edge = 'sydney'
158-
```
159-
160-
This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
161-
162-
### Make a Call
163-
164-
```python
165-
from twilio.rest import Client
166-
167-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
168-
auth_token = "your_auth_token"
169-
client = Client(account_sid, auth_token)
170-
171-
call = client.calls.create(to="9991231234",
172-
from_="9991231234",
173-
url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
174-
print(call.sid)
175-
```
176-
177-
### Get data about an existing call
178-
179-
```python
180-
from twilio.rest import Client
181-
182-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
183-
auth_token = "your_auth_token"
184-
client = Client(account_sid, auth_token)
185-
186-
call = client.calls.get("CA42ed11f93dc08b952027ffbc406d0868")
187-
print(call.to)
188-
```
189-
190-
### Iterate through records
191-
192-
The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and `stream` methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
193-
194-
`list` eagerly fetches all records and returns them as a list, whereas `stream` returns an iterator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
195-
196-
#### Use the `list` method
197-
198-
```python
199-
from twilio.rest import Client
200-
201-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
202-
auth_token = "your_auth_token"
203-
client = Client(account_sid, auth_token)
204-
205-
for sms in client.messages.list():
206-
print(sms.to)
207-
```
208-
209-
### Asynchronous API Requests
210-
211-
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.
212-
213-
```python
214-
from twilio.http.async_http_client import AsyncTwilioHttpClient
215-
from twilio.rest import Client
216-
217-
async def main():
218-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
219-
auth_token = "your_auth_token"
220-
http_client = AsyncTwilioHttpClient()
221-
client = Client(account_sid, auth_token, http_client=http_client)
222-
223-
message = await client.messages.create_async(to="+12316851234", from_="+15555555555",
224-
body="Hello there!")
225-
226-
asyncio.run(main())
227-
```
228-
229-
### Enable Debug Logging
230-
231-
Log the API request and response data to the console:
232-
233-
```python
234-
import logging
235-
236-
client = Client(account_sid, auth_token)
237-
logging.basicConfig()
238-
client.http_client.logger.setLevel(logging.INFO)
239-
```
240-
241-
Log the API request and response data to a file:
242-
243-
```python
244-
import logging
245-
246-
client = Client(account_sid, auth_token)
247-
logging.basicConfig(filename='./log.txt')
248-
client.http_client.logger.setLevel(logging.INFO)
249-
```
250-
251-
### Handling Exceptions
252-
253-
Version 8.x of `twilio-python` exports an exception class to help you handle exceptions that are specific to Twilio methods. To use it, import `TwilioRestException` and catch exceptions as follows:
254-
255-
```python
256-
from twilio.rest import Client
257-
from twilio.base.exceptions import TwilioRestException
258-
259-
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
260-
auth_token = "your_auth_token"
261-
client = Client(account_sid, auth_token)
262-
263-
try:
264-
message = client.messages.create(to="+12316851234", from_="+15555555555",
265-
body="Hello there!")
266-
except TwilioRestException as e:
267-
print(e)
268-
```
269-
270-
### Generating TwiML
271-
272-
To control phone calls, your application needs to output [TwiML][twiml].
273-
274-
Use `twilio.twiml.Response` to easily create such responses.
275-
276-
```python
277-
from twilio.twiml.voice_response import VoiceResponse
278-
279-
r = VoiceResponse()
280-
r.say("Welcome to twilio!")
281-
print(str(r))
282-
```
283-
284-
```xml
285-
<?xml version="1.0" encoding="utf-8"?>
286-
<Response><Say>Welcome to twilio!</Say></Response>
287-
```
288-
289-
### Other advanced examples
290-
291-
- [Learn how to create your own custom HTTP client](./advanced-examples/custom-http-client.md)
292-
293-
### Docker Image
294-
295-
The `Dockerfile` present in this repository and its respective `twilio/twilio-python` Docker image are currently used by Twilio for testing purposes only.
296-
297-
### Getting help
298-
299-
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.
300-
301-
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!
302-
303-
[apidocs]: https://www.twilio.com/docs/api
304-
[twiml]: https://www.twilio.com/docs/api/twiml
305-
[libdocs]: https://twilio.github.io/twilio-python
3+
## Test Release must not be used

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.