I am developing an Alexa skill with a custom backend.
There are some intents with slots which work fine. But recently I added another intent and experienced a strange behavior. The new intent doesn't have any slots. When I open my skill manually and perform the corresponding utterance, the session is closed. The dialog is like this:
1) Alexa, open <SKILL>
[My launch request response]
2) Alexa, <INTENT WITH A SLOT>
[Intent response]
3) Alexa, <INTENT WITHOUT A SLOT>
[Intent response]
4) Alexa, <ANY INTENT>
[Some default response which is not from my skill]
Alexa seems to cancel the current session after 3).
I tried to add a dummy slot to the intent which is never used and not required. By that I am able to enable the auto delegation for this intent. This hack works. The session is not cancelled. But i'd like to know why this happens and if there is any switch to press to do that. Auto delegation is already turned on globally for the skill. This also happens when I use built-in intents like the RepeatIntent.
I also tried to set the shouldEndSession field in the response. Since I don't want Alexa to listen for a specific answer this even doesn't work.
Related
Is there a way to activate an event Alexa without speaking?
For instance, I am working on a project involving a pill box, and once it is set up, I want Alexa to remind me to take my medication without requiring a vocal command from me
Have you looked into Routines? This would let you schedule time-based actions like Alexa-spoken reminders.
If you're building a custom skill, the Reminders API would give you a way to programmatically setup spoken reminders as well.
There's also the Alexa Routines Kit skills can use to create Routines by voice, but this is in developer preview, so you would need to apply for access.
I’m trying to create an Alexa capability that creates reminders without user voice invocation. To achieve this Alexa suggested to use “Out of session” interaction event i.e Skill Messaging API (https://api.amazonalexa.com/v1/skillmessages/users/{userId}), as you can see in the API we need to pass the user Id, In order to get the user Id Alexa suggest to do first account-linking, once linking is done we’ll get the user profile access including userId. Now, after hitting the Skill Messaging API with received userId, it returns
{type:”not_found”, a message ”invalid user Id”}.
Not sure where am I going wrong. Has anyone phase the same problem.
In the request shown next, set HOST to one of the following, depending on the user's region: api.amazonalexa.com, api.eu.amazonalexa.com, or api.fe.amazonalexa.com
I am developing an Alexa Skill, and before releasing the first version of it, I wanted to be sure that I can notify my users about new features.
How can I do this ? What are my options ?
I saw Alexa Proactive Event, but I'm not sure about how to use it and if it's the right choice.
Following options:
Visually
(of course who reads when using alexa ;-) )
alexa developer console -> distribution -> whats new
For my skills I also updated the "detailed description" with some mini release notes before this "whats new" text field existed.
Voice
You can check in your backend logic if your user uses the skill after your update.
Therefore you would need to save the time whenever a user uses your skill (of course you need the times before your update but a backend update is independent from your skill update with certification).
Now if a requests come in you check the lastUsage time and can send out your special update message.
Of course you could also do via a flag (flag all users which got the message) instead of lastUsageTime.
Will be helpfull for persisting this data (alreadyGotUpdate message flag or lastSkillUsageTime): https://developer.amazon.com/de/docs/alexa-skills-kit-sdk-for-nodejs/manage-attributes.html#persistenceadapter
I'm revisiting a skill I started making a little while ago, and now it's giving me an odd message when I try to open it.
"To use Alexa Adventure Game skill, a parent needs to give permission. To do that, I sent some information to the home screen of your Alexa App."
I assume the problem has something to do with parental permissions and I want to fix it. This skill worked the last time I used it.
This is something which will come up when you've ticked YES to the question "Is this skill directed to or does it target children under the age of 13?" on the Privacy & Compliance page under Distribution. As a result of this, your skill will be considered a "kid skill".
You only have to enable the use of Alexa kid skills on your account once, but the process will differ depending on if you are in the US or elsewhere.
If possible, the most straightforward thing would be to open the Alexa App (or the Alexa website) and follow the steps to enable kid skills. If you haven't configured your skill to display a card, Amazon suggest you can also go directly to their parental consent page to grant the appropriate permissions.
Lastly, one reason why this didn't show up last time you were working on your skill could be that Amazon changed there policy a few months back to now require specific enabling of kid skills.
Is it possible to trigger Alexa remotely i.e I have a scenario where based on some action on Mobile App Alexa should be triggered and the response provided will be read out by echo dot.
Varun
There's no way to trigger a response without the user interacting with the Alexa-enabled device. But it looks like this may be changing soon: https://www.theverge.com/2017/5/16/15647074/alexa-notifications-being-added-amazon-echo
Currently there isn't a way to trigger a response from the device without interacting with the device it's self. Even skills created for the device by third parties currently only have access to get a response immediately (approximately with-in 10 seconds) after an interaction.