I have been playing with Alexa Skills for some time, and having great fun.
Until recently, all of my skills were private. If you design an Alexa Skill but never publish it, it remains in Dev – it is accessible to all of your own Echo devices, but not to the outside world. This is actually extremely useful, as you can write your own personal skills to do quite specific tasks.
However, Amazon have recently provided incentives for publishing skills, so I have come up with ideas for a few skills I’m happy to share with the public. So far, I have the following:
|Meat Meter||A guide to the correct internal temperature to cook various meats.||Live|
|Posh Games||Information regarding Posh Games sessions scheduled in the next 7 days (Posh Games being my local board-gaming group).
Approved 14 Oct 2018
|Pill Diary||Allows user to keep a diary of medications taken. When called it reports on the last 3 medications and lets you note the taking of a new medication.||Awaiting Approval|
My current way of writing these skills is using a web application called Storyline – it is a graphical tool that lets you write skills without having to write code. I’m using it not because I want to avoid programming, but because I found the original Amazon method of writing skills convoluted to setup – requiring you to set things up in several different places before you can proceed.
Storyline does all of that for you, automatically – the downside is that your actual code is hosted at Storyline, so is inaccessible to tinkerers like me, and Storyline is limited to certain functions, although their speed of development has been impressive.
I’m getting around many of these limitations by pointing Storyline at bespoke PHP code being hosted on my own website. Storyline tells my code what has been requested, my code goes and sorts it out, then writes a phrase which is fed back to Storyline for Alexa to read out, and get the next voice request.
Essentially, I am using Storyline simply to handle the Alexa device, and my own code for looking up data, and stringing together the responses. It’s actually quite a flexible way of working, and has distinct benefits. Whereas my first skill used Google Sheets as a backend data source (simply because the example skills I was shown did the same), I am now using my PHP code to talk to a mySQL database, which can be as simple or complicated as it needs to be.
Another advantage of my PHP backend is due to the fact that once a skill is published and certified, any changes in the skill require it to go through the whole Amazon certification process again, which can take up to 5 days. During that time, the old version is still available, so your skill is still up there, but it does slow development down. Also, during the recertification period, you can’t edit your Dev version of the skill, unless you withdraw it from recertification, and start again from scratch.
But using a PHP backend, once I get the basic Alexa structure settled, then that is it. Most subtle language changes can be implemented by editing my PHP code, which does not change the skill as far as Amazon is concerned. Which means i can make changes without the need to recertify. For incremental programmers like me, that is fantastic. Often it is only when I hear Alexa speaking my words that I think “no, that doesn’t sound right, let’s rephrase it”. Which I now can, to my heart’s delight.
A further limitation of Storyline is that it currently doesn’t handle any visual elements – i.e. Alexa Cards or visual displays on Echo Show and Spot devices. This may change soon. If not, I may have to learn how to write skills the harder way!