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.