Minimal Python3 toolkit to create Amazon Alexa skills with Falcon.
Builds on top of Alexa Skills Kit (ASK) to bootstrap boilerplate code so you don't have to!
Inspired by Flask-Ask and Alexandra.
A Falcon app might look like this.
import json
import falcon
from falcon_ask import dispatch_request, FalconAskMiddleware, respond
def intent_fn(body):
    # "body" contains request POST data.
    return 'Congratulations! Your new alexa skill works great.'
class AlexaResource(object):
    # Dictionary mapping of "IntentRequest" to function.
    intent_maps = {
        'GreetingIntent': intent_fn,
    }
    # Message to return when "LaunchRequest" is received.
    welcome = 'Hi, welcome to your new alexa skill.'
    def on_post(self, req, resp):
        response = dispatch_request(req)
        resp.body = json.dumps(respond(response, end_session=False))
app = falcon.API(middleware=[
    # Do validation of request certificate and timestamp.
    FalconAskMiddleware(AlexaResource, validate=True),
])
app.add_route('/', AlexaResource())Save above code to alexa.py and run via $ gunicorn alexa:app. Make sure gunicorn is installed.
To install Falcon-Ask, simply use pipenv (or pip, of course):
$ pip install falcon-ask
✨🍰✨Satisfaction guaranteed.
Thanks for checking this library out! I hope you find it useful.
Of course, there's always room for improvement. Feel free to open an issue so we can make Falcon-Ask better.
Special thanks to @muxspace for giving me an Echo Dot.