aws-lambdaalexa-skills-kitamazon-echo

Alexa Skill not recognized when tested on Echo


I was doing one of the tutorials (HelloWorld) to make a skill for the Echo and I followed the directions. When I tested the skill using the Service Simulator, I typed in

Alexa, tell Greeter to say hello

and that returned the following JSON response:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Hello World!"
},
"card": {
  "content": "Hello World!",
  "title": "Greeter",
  "type": "Simple"
},
"shouldEndSession": true
  },
  "sessionAttributes": {}
}

I think that is the correct output. However, when I tried testing the skill on my Echo, Alexa replies "Sorry, I didn't your question." I went on the history and Alexa interpreted my command as "alexa tell greeter to say hello." It seems that Alexa is not recognizing the skill?

I am using Amazon Lambda to execute the code, so I checked the logs and the code was not executed when I spoke the command to above.

I replaced the app_id in the javascript file to the one that corresponds to my skill. I have also put the amazon skills kit as a trigger.

I also tried the other tutorials (ChemistryFlashCards and HistoryBuff), and Alexa replies "I'm not sure what you meant by that."

Not sure what is happening! Any guidance is appreciated!!


Solution

  • For your Echo / Dot / Tap device to correctly invoke your custom skill, the Language of your Interaction Model needs to match the region your lambda resource is deployed in. I had this issue, as I deployed lambda in EU-West1 (Ireland) but the default alnguage for the Interaction model is English (US). In the interaction model I added a new language of English (UK) and copied over my intents and utterances, then deleted the English US language, and my Echo Dot now correctly invoked my custom skill intents