Django library for creating skills for the Amazon Echo (Alexa)
Project description
django-echo
Django library for creating skills for the Amazon Echo (Alexa)
Getting Started
django-echo is mainly composed of three classes:
echo.skill.EchoSkill: A subclass of Django’s generic.View that handles routing intents and dealing with request data.
echo.request.EchoRequest: A small wrapper around the JSON data in the request from Amazon.
echo.response.EchoResponse: A subclass of Django’s http.HttpResponse that knows how to generate a valid Amazon Echo response.
Creating a Skill
A skill is a class that subclasses EchoSkill that provides intent handlers:
from echo.skill import EchoSkill class HoroscopeSkill(EchoSkill): def get_horoscope(self, request, sign): # Ignore the sign because astrology is bunk. return self.respond( "Today you need to act first and ask questions later!", card=None, should_end_session=True )
On the Amazon side you would setup an intent called GetHoroscope that has a sign slot, and when that intent is called this get_horoscope method will be called with the slot data.
The self.respond is a helper method that essentially just acts as a pass-through to EchoResponse. You can also use SSML directly and EchoResponse will set the response up correctly:
self.respond("<speak>Today you need to ask questions first and act later!</speak>")
Then you just need to wire the skill up to your urls.py:
from django.conf.urls import url from .views import HoroscopeSkill urlpatterns = [ url( regex=r'^horoscope/$', view=HoroscopeSkill.as_view(), name='horoscope_skill' ) ]
Responding With A Card
EchoSkill provides a helper to create a simple card:
return self.respond( "What alexa should say", card=self.create_simple_card("The card title", "The card's content") )
Session Handling
EchoSkill sets self.request to an instance of EchoRequest (it also saves the http request to self.http_request.) EchoRequest provides the session attributes via a session attribute:
sign = self.request.session.get('sign') request.session.update({ 'has_requested_horoscope': True })
If you use EchoSkill.respond this session data will be automatically attached to the response, otherwise you’ll need to pass it when creating the response:
return EchoResponse("Output text", session=self.request.session)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-echo-0.2.2.tar.gz
.
File metadata
- Download URL: django-echo-0.2.2.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6163830433525560f6da9407a78ab18e856495abdbff60764e3d9be81dbf620 |
|
MD5 | e9db2cd68583b283e196424e78e4e2d6 |
|
BLAKE2b-256 | 4a6c5e46c149004f07ece97aa812917ec1f6c62da5a21002409cae8a5a02a9d6 |