2
votes

I got 3 skills in my account, eg SkillA, SkillB and SkillC.

I am using an endpoint url to listen to these skills, and my server is common for all the 3 skills. So if I try to invoke a skill by saying open SkillA it invokes LaunchRequest. Same is the case with other 2 skills.

So how would I be able to know which Skill's LaunchRequest was invoked.

My server is ruby with Ralyxa Gem.

1

1 Answers

1
votes

For every skill there is a unique Skill ID known as applicationId. Making use of this applicationId from the request JSON you can easily determine from which skill the request came in.

You can find this applicationId under application object in every request from Alexa to your backend.

{
    "version": "1.0",
    "session": {
        "new": true,
        "sessionId": "amzn1.echo-api.session.xxxx-xxxx-xxxx-xxxx-xxxxxxx",
        "application": {
            "applicationId": "amzn1.ask.skill.xxxx-xxxx-xxxx-xxxx-xxxx"
        },
        "user": {
            "userId": "amzn1.ask.account.xxxxxxxxxxxxxx"
        }
    },

...

You can also view the Skill ID from Alexa developers console where your Alexa Skills are listed.

enter image description here