/marketing-notifications-flask

Demo application showing how to implement SMS notifications (for a mobile marketing use case) in Python

Primary LanguagePythonMIT LicenseMIT

SMS Notifications with Twilio and Python | Flask

Build Status

Use Twilio to create SMS notifications to keep your subscribers in the loop.

Read the full tutorial here!

Local Development

  1. You will need to configure Twilio to send requests to your application when SMS are received.

    You will need to provision at least one Twilio number with SMS capabilities so the application's users can make property reservations. You can buy a number right here. Once you have a number you need to configure your number to work with your application. Open the number management page and open a number's configuration by clicking on it.

    Remember that the number where you change the SMS webhook must be the same one you set on the TwilioPhoneNumber setting.

    Configure Voice

    To start using ngrok in our project you'll have execute to the following line in the command prompt.

    ngrok http 8080 -host-header="localhost:8080"
    

    Keep in mind that our endpoint is:

    http://<your-ngrok-subdomain>.ngrok.io/message
    
  2. Clone this repository and cd into it.

    git clone git@github.com:TwilioDevEd/marketing-notifications-python.git
    
  3. Create a new virtual environment.

    • If using vanilla virtualenv:

      virtualenv venv
      source venv/bin/activate
      
    • If using virtualenvwrapper:

      mkvirtualenv account-verification-flask
      
  4. Install the requirements using pip.

    pip install -r requirements.txt
    
  5. Edit the following keys/values for the config.py file inside the marketing-notifications-python/ directory. Be sure to replace the place holders and connection string with real information.

SECRET_KEY = 'your_authy_secret_key'

TWILIO_ACCOUNT_SID = '[your_twilio_account_sid]' TWILIO_AUTH_TOKEN = '[your_twilio_auth_token]' TWILIO_NUMBER = '[your_twilio_phone_number]'

SQLALCHEMY_DATABASE_URI = 'sqlite://' ```

  1. Run the migrations.

    python manage.py db upgrade
    
  2. Start the development server.

    python manage.py runserver
    

That's it!

Run the tests

You can run the tests locally through coverage:

  1. Run the tests.

    $ coverage run test.py
    

You can then view the results with coverage report or build an HTML report with coverage html.

Meta

  • No warranty expressed or implied. Software is as is. Diggity.
  • MIT License
  • Lovingly crafted by Twilio Developer Education.