Files
sdk-starter-python/README.md
2017-05-19 09:41:52 -05:00

94 lines
4.0 KiB
Markdown

<a href="https://www.twilio.com">
<img src="https://static0.twilio.com/marketing/bundles/marketing/img/logos/wordmark-red.svg" alt="Twilio" width="250" />
</a>
# Twilio SDK Starter Application for Python
This sample project demonstrates how to use Twilio APIs in a Python web
application. Once the app is up and running, check out [the home page](http://localhost:5000)
to see which demos you can run. You'll find examples for [Chat](https://www.twilio.com/chat),
[Video](https://www.twilio.com/video), [Sync](https://www.twilio.com/sync), and more.
Let's get started!
## Configure the sample application
To run the application, you'll need to gather your Twilio account credentials and configure them
in a file named `.env`. To create this file from an example template, do the following in your
Terminal.
```bash
cp .env.example .env
```
Open `.env` in your favorite text editor and configure the following values.
### Configure account information
Every sample in the demo requires some basic credentials from your Twilio account. Configure these first.
| Config Value | Description |
| :------------- |:------------- |
`TWILIO_ACCOUNT_SID` | Your primary Twilio account identifier - find this [in the console here](https://www.twilio.com/console).
`TWILIO_API_KEY` | Used to authenticate - [generate one here](https://www.twilio.com/console/dev-tools/api-keys).
`TWILIO_API_SECRET` | Used to authenticate - [just like the above, you'll get one here](https://www.twilio.com/console/dev-tools/api-keys).
#### A Note on API Keys
When you generate an API key pair at the URLs above, your API Secret will only be shown once -
make sure to save this information in a secure location, or possibly your `~/.bash_profile`.
### Configure product-specific settings
Depending on which demos you'd like to run, you'll need to configure a few more values in your
`.env` file.
| Config Value | Product Demo | Description |
| :------------- |:------------- |:------------- |
`TWILIO_CHAT_SERVICE_SID` | Chat | Like a database for your Chat data - [generate one in the console here](https://www.twilio.com/console/chat/services)
`TWILIO_SYNC_SERVICE_SID` | Sync (Preview) | Like a database for your Sync data - [generate one in the console here](https://www.twilio.com/console/sync/services)
`TWILIO_NOTIFICATION_SERVICE_SID` | Notify (Beta) | You will need to create a Notify service - [generate one here](https://www.twilio.com/console/notify/services)
### Configuring Notify
You will need to create a Notify Service through the [Twilio Console](https://www.twilio.com/console/notify/services), and add at least one credential on the [Mobile Push Credential screen](https://www.twilio.com/console/notify/credentials) (such as Apple Push Notification Service or Firebase Cloud Messaging for Android) to send notifications using Notify.
## Run the sample application
This application uses the lightweight [Flask Framework](http://flask.pocoo.org/).
We need to set up your Python environment. Install `virtualenv` via `pip`:
```bash
pip install virtualenv
```
Next, we need to install our dependencies:
```bash
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
```
Now we should be all set! Run the application using the `python` command.
```bash
python app.py
```
Your application should now be running at [http://localhost:5000](http://localhost:5000). When you're finished, deactivate your virtual environment using `deactivate`.
![Home Screen](https://cloud.githubusercontent.com/assets/809856/26252870/0bfd80ac-3c77-11e7-9252-2b19dff5d784.png)
## Running the SDK Starter Kit with ngrok
If you are going to connect to this SDK Starter Kit with a mobile app (and you should try it out!), your phone won't be able to access localhost directly. You'll need to create a publicly accessible URL using a tool like [ngrok](https://ngrok.com/) to send HTTP/HTTPS traffic to a server running on your localhost. Use HTTPS to make web connections that retrieve a Twilio access token.
```bash
ngrok http 5000
```
## License
MIT