I was interested in learning how to develop my own skills. After I came up with my initial idea I was surprised how easy the process seemed on the surface. There are great walk-through guides up at Amazon but I thought it would be helpful to see the pages laid out in one place.
Step 0: Find your StoryThink of your Alexa Skill as a story or a narrative. It is helpful to map out a flow on how you think this interaction will work.My Flow:
- Ask Alexa to write a love letter from Adam to Eve. (Note: You should substitute your names here)
- Alexa calls an API to return a poem or love note.
I can't keep it in anymore, Eve. I have a HUGE crush on you!
-Adam
Complete the Skill Information Page.Application Id: The ID for this skill(Non-editable, but this is your this is your generated application ID)Skill Type (Required)You can choose a Skill API or define the interaction model. Custom Interaction Model Smart Home Skill APIFor this project we are using "Custom Interaction Model"Name (Required)The name of this skill. This is the name displayed in the Alexa App. Invocation Name (Required) The name users will say to interact with this skill. This does not have to be the same as the skill name. The invocation name must comply with the Invocation Name Guidelines
Step 2: Define your InteractionComplete the Interaction Model Page.Intent Schema (Required)The schema of user intents in JSON format. For more information, see Intent Schema.Also see built-in slots and built-in intents.
{
"intents": [
{
"intent": "GetLoveLetter",
"slots": [
{
"name": "NameOne",
"type": "AMAZON.US_FIRST_NAME"
},
{
"name": "NameTwo",
"type": "AMAZON.US_FIRST_NAME"
}
]
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
}
]
}
We are using AMAZON built in slots for US First Names.
Think of this like the Table of Contents to your story. Here you map out each conversation you could possibly have.
Sample Utterances (Required): Phrases end users say to interact with the skill. For better results, provide as many samples as you can. Note that you must select three of these to use as your Example Phrases on the Description tab.For more information, see.
Here is where you define what YOU say. You start with what "Intent" the phrase should be map to, and include any custom slots in curly brackets.
GetLoveScore what are the chances of {NameOne} and {NameTwo}
GetLoveLetter write a letter from {NameOne} to {NameTwo}
GetLoveLetter {NameOne} to {NameTwo}
Step 3. ConfigurationEndpoint (Required)Lambda ARN url for Smart Home Adapter.More info about AWS LambdaHow to integrate AWS Lambda with Alexa
Here is where you map the web service that drives the back end interaction with the Alexa Skill. Here is where you point you skill at that service will describe in code section. You can map it to your own hosted service or a service you construct in AWS Lambda.
Account LinkingDo you allow users to create an account or link to an existing account with you? Learn more
We are not using Account Linking in this project.Step 4. Test
This is where you test your service. You can past your Utterances in the "Enter Utterance" field and click the "Ask Your Service Name" button to test the interaction.
You will see the formatted Lambda Request and Lambda Response in the boxes below.
Step 5. Publishing InformationHere is where you get really creative... You describe what your Skill will do in both short and long form for display in the Skills directory. Also specify so example Utterances, Icons, Keywords and Testing Instructions for the Certification process.
Step 6. Privacy & ComplianceComplete the privacy questionnaire regarding if the Skill requires purchases or the exchange of money. If personal information is collected. You can also link any Privacy statements or Terms of Use URLS.
Step 7. SubmissionWhen you are tested and ready to go, submit your Skill for certification. Note: once you submit it, you can no longer edit or test the service.
Comments