Alexa Submission Fail — Now What?


#1

I initially discovered Losant through this blog post, and decided to give making a Custom Skill for Alexa a whirl.

(I’ve previously made a Flash Briefing skill — which also requires no code — but wanted to make the same content available as a Custom Skill that can be accessed outside of one’s Flash Briefing feed.)

I followed the steps outlined in the blog above, but got this response from Amazon :confused:

The skill simply plays an audio file. That’s it.

But as I’m new to coding I have no clue what skill endpoint validation is, or why it’s not accepting valid signed requests… Help?


#2

Hi Chris, the screenshot you sent says that steps to reproduce the errors are included but I see none; is there any more information in the note you received from Amazon that you can include?

I haven’t done a deep dive yet but one thing I see in your workflow is you do have a conditional branch where you are not issuing a reply to the webhook (where your “Store Value” node is). It could be that the request from Amazon is timing out because no response is being sent for certain scenarios they’re throwing at it.

@Brandon_Cannaday may have more insight as he was the author of the original article you followed.


#3

Dylan,

Thanks! This is very helpful for me.

Below is the second half of the email — I didn’t include it previously because I think I’ve solved the additional described issues… (That being said, what do I know?)

I’m also perplexed about the lack of information on the “steps to reproduce” to solve the issues.

I’ll begin thinking/working on a reply for the conditional branch you mentioned.

Any other thoughts would be greatly appreciated!


#4

Ah yes, issue #2 is going to be a fun one. I’ll work on making an example that demonstrates how to do the certificate validation within the workflow.


#5

Nice! Thanks @Brandon_Cannaday— really appreciate the follow-up help here.


#6

@Brandon_Cannaday, just checking in again — anything further on this?


#7

I did spend some time on it. The biggest challenge is performing the crypto functionality. I’ve been attempting to implement their verification requirements using just the crypto module. If that works, we can expose that module to the raw function node.

Since our raw function node runs on our servers, we are very cautious as to what dependencies and modules the users are allowed to use, which is why this is a bit harder up front.

I’ll spend some more time on it over the next few days and hope to have more answers then.


#8

@Brandon_Cannaday, any more news on implementing their verification requirements using the crypto module?


#9

I’ve dug enough into to know it’s not going to be simple. At the moment, you’ll have to stick with Lambda when publishing a skill. The easiest approach would probably be to have the skill invoke a lambda node, which then just invokes a Losant webhook. That allows you to continue using the Losant workflow engine for all of the logic, however removes the verification requirement.

In order to properly support the verification process, we’ll have to add a specific node to the workflow, or add it as a verification option when creating the webhook. I don’t have a timeline for when the functionality would be released.

I’ll update the blog article with this recommendation so people know.


#10

Could I get one more layer of detail on how you might do that?

Right now my losant workflow begins with a WEBHOOK that I put in the alexa dev portal.

It sounds like you want me to lead with a AWS lambda node.
– I understand all the inputs required for that I think (from looking at it)
– I’m not sure what you want in the OUTPUT block?
– On the LAMBDA side, I understand the CONFIG and TRIGGERS – what would the CODE look like to call the LOSANT
– After the LAMBDA call in your graphic UX, has it REPLACED the WEBHOOK node or does it FEED the WEBHOOK?

Thanks, and Go Bengals!


#11

I’m in a similar situation as Dave, I’m also learning to code and decided to start with a simple Alexa Skill.
I already have my code in Losant, and upon submission my skill was also rejected (I was expecting it, but still decided to give it a try).

Now, how do I make Lambda invoke my Losant webhook?

I found in GitHub a code ( https://gist.github.com/LosantGists/bf4423a9a456ad3d694667988953f21a ) that kinda shows, but as I said, I’m beginning and besides the PATH section, I’m not quite sure what else I need to replace.

Thanks!