Why?
I ended up buying an Amazon Echo during prime day, and wanted to try out developing for it with the dev kit, while also getting some experience with other new technologies like AWS lambda.
For my first skill I decided to make a tool which pulled the latest news from Star Wars Combine, a star wars based rpg. Within combine there are 3 types of news. Sim news which is news about development and other out-of-character news. GNS, which is in-character news articles written by players. And finally flash news, which is in-character news snippets which are automatically generated when certain events happen.
I had decided to make this skill as I believed it would be a relatively simple skill to develop in order to get to grips with the development process for the echo.
Alexa Development Kit
Development started on the alexa development kit website where I setup the invocation name, which is what you say to alexa to trigger the app to open it. For this project I chose the name "Unofficial Combine News". From there I had to setup the intents, which are the phrases you can say to the app to trigger functionality. I needed 3 main intents, one for each of sim, gns and flash news. Each intent then needed 2 types, one with a slot for the number of items to read and one to just read the default number.
The nice thing about the alexa intents was that you can provide samples and it will use it to learn other possible ways of phrasing it. Some examples were
"The latest flash news"
"The last 3 flash news"
Once all the intents were setup, I built the model and began to work on the code to power the skill.
AWS Lambda
This was my first time using AWS lambda, the recommended tool for basic skill, so I spent a while getting to grips with the basics, and I found it quite interesting. I'll probably be using it for other projects from now on. But for now, I needed to decide on a language to develop the skill in.
Although there was no official SDK for it, I decided to use python 3.6 to power the skill, mainly because it is the language I've been using the most recently. After a bit of googling, a few youtube videos and some trial and error, I had a basic framework for the skill.
With my basic framework ready to go, I setup the skill, with functions for each intent. Using RSS feeds of each news type available from combine I was able to pull the latest news, looping over each item in the feed til either reaching the default value or the value chosen by the user.
The Result and Future
At time of posting, the skill has just been approved by amazon and is now live and can be found at https://www.amazon.co.uk/gp/product/B07FX9VX2P?ie=UTF8&ref-suffix=ss_rw. The skill can currently read the titles and authors of the latest sim and gns news, and also read the title and content of the latest flash news.
Over time I am looking to make it so the skill can read the bodies of sim and gns, but at the moment there are some issues with special characters and formatting when setting it to read the bodies. Another future goal is to be able to link the combine news into the daily flash briefing alexa can provide.