jovotech / jovo-framework

🔈 The React for Voice and Chat: Build Apps for Alexa, Messenger, Instagram, the Web, and more
https://www.jovo.tech
Apache License 2.0
1.67k stars 310 forks source link

getDeviceAddress() Ends Session Unexpectedly w/o Response #504

Closed Voice-First-AI closed 4 years ago

Voice-First-AI commented 5 years ago

I'm submitting a...

Expected Behavior

Documentation for Get Device Address should return valid speech.

Current Behavior

When this.$user.getDeviceAddress() is used, following Jovo documentation, there is no response and the session ends.

Error log

{
    "version": "1.0",
    "session": {
        "new": false,
        "sessionId": "amzn1.echo-api.session.a19adc43-ab18-444a-a5ea-5a81eba0f1dc",
        "application": {
            "applicationId": "amzn1.ask.skill.84c01d2e-72d3-420a-97ca-63640fbe5c88"
        },
        "user": {
            "userId": "amzn1.ask.account.AHC43ATEGMWSX4TYUYRKD2AQKLM4VMY33UC52ZHGMYN7IO2YGRHTGRFTXHZJTMWKUTBSEZUFG3BYG4ZFHEMJIO6Z6BNI43ZNRESS5DXKVHEOJWYPD2YYREDNHHWTKFPHWVDJ6NVSJAQDLWOQHBD4ZWEETG3OINMTPLKKXH5D66VGLQIXQ5XKN2N7MTTKPBNTSJJRAZQESKN3MRQ",
            "permissions": {
                "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjg0YzAxZDJlLTcyZDMtNDIwYS05N2NhLTYzNjQwZmJlNWM4OCIsImV4cCI6MTU1ODM3MzM0OSwiaWF0IjoxNTU4MzY5NzQ5LCJuYmYiOjE1NTgzNjk3NDksInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklQa1F5S3dhNkxxeGo5eHZxNlBCZDNpYTdSN2FyZlUwcFMxMlJaWkFiZjV6Um94Y09wbVNkNlpKcUhJZHA0Q2RYU05JSXYzc3gyRHhWYkxqMFZfWlZwX3BITDFOenRQY2NzdjI2U0RjU3JscC1qSUlmQ1gtS040RXRfb0lUTnd1XzhvZmwzclByRHdja2d1U0VCU2N3RF9yOTIwdkRRLWhQVF9pRzNYeTFwWm5BVkNKaExpaFJKZXpjbGJhWF9yX0FnY1MzY3ZLVzNtUGFQd2lWeDZwNzAtS0FCTDJhaDF4M2FIU1RfXzR3UWxCU09UeV9hVm1uTnpzRXpsdm5RY0VKNXpfdkdsWFdrRmYyU3ljYlJkY0RfVV9TREdzS2xNS2RHaXVIRWVJbDU0YUNkNk52emRfVHZlYjRqVVo5QzVmc3JKUGlrM3huNUljU0FsYS16VTBLb1QwTFNraElEWkhfRGRRc0g1NzhaLWQ4VGFWVzUwVkhiZTJtZFFSeW5nemdMVnpONWZ6R1g2TzZQV1ctMFVuUkJGdWVyYkM5a0x0VWtqSXdzT3J3RVJ5QXJ1OWpXOUwtbEJuOVd4VkNzQ3VWSkRpMldGdUJMUzR4dzh2US1rSlphVnVObG5ROUVQQzdENWNyaER4M1NqNnFJYWJ3YlNhYV9YdUt1aVpmSlBRTTJYSTE1Q3FQUDRtNkZnYWdCQ0stNDFOVUk0MzN2c1RQUVdLR1ppSjB3TGFxUSIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BSDYzNDVWNDdVNDVCWUZSRjVIUEJZWFJLV1RTSkRBNEVCRUtONllUUk1VUzNHSDJKT05VWkRMRlpURUFHSUZCRk5KRzQ1R1NPUTRRTkZMSDJPNzVKTTRJWjdUWUFISExQV0NRSzdGNTRCWVlPVUhLREEyQUszUjRPTEdaR0ZHTUkzSUNOV01TWlBTTFdBVFVaTlMzVDI0WFJMNlJQSVVWT1BJTU9SQzVJUVhDSkhDUFJZSVRZIiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQUhDNDNBVEVHTVdTWDRUWVVZUktEMkFRS0xNNFZNWTMzVUM1MlpIR01ZTjdJTzJZR1JIVEdSRlRYSFpKVE1XS1VUQlNFWlVGRzNCWUc0WkZIRU1KSU82WjZCTkk0M1pOUkVTUzVEWEtWSEVPSldZUEQyWVlSRUROSEhXVEtGUEhXVkRKNk5WU0pBUURMV09RSEJENFpXRUVURzNPSU5NVFBMS0tYSDVENjZWR0xRSVhRNVhLTjJON01UVEtQQk5UU0pKUkFaUUVTS04zTVJRIn19.Jew7aIwhYDw_tf1GoBJC_QNbHsMNlguqIRbwFDZ_-syioBEFMUmVUNC2Dug0BDzxP_BsGL2iy0qYkyBFl4p5NIslRe26HY-uKp3kX0rXba11YSxsav7EjIL-1Fznf2g4vUBhWN3kIbmz0RRIPQO4-zc1VxatpyJSj1Lb8ehwYaEt0ER2oy8ShMxVFFtbkXudT1tJzNLjlgHe6HXM000H_KhlXf2w_CzW_FPGTn4HiWpGGO_xMykKWlKIdovnRWm41eSgxSivw1oqlJDMnrvjxl5E3w7s36sc7JCiN5mV3S88XK2r7JtbIGsa2FC8hoDwNU5-L120q9qKpx5TST1iFg",
                "scopes": {
                    "alexa::devices:all:geolocation:read": {
                        "status": "GRANTED"
                    }
                }
            }
        }
    },
    "context": {
        "System": {
            "application": {
                "applicationId": "amzn1.ask.skill.84c01d2e-72d3-420a-97ca-63640fbe5c88"
            },
            "user": {
                "userId": "amzn1.ask.account.AHC43ATEGMWSX4TYUYRKD2AQKLM4VMY33UC52ZHGMYN7IO2YGRHTGRFTXHZJTMWKUTBSEZUFG3BYG4ZFHEMJIO6Z6BNI43ZNRESS5DXKVHEOJWYPD2YYREDNHHWTKFPHWVDJ6NVSJAQDLWOQHBD4ZWEETG3OINMTPLKKXH5D66VGLQIXQ5XKN2N7MTTKPBNTSJJRAZQESKN3MRQ",
                "permissions": {
                    "consentToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjg0YzAxZDJlLTcyZDMtNDIwYS05N2NhLTYzNjQwZmJlNWM4OCIsImV4cCI6MTU1ODM3MzM0OSwiaWF0IjoxNTU4MzY5NzQ5LCJuYmYiOjE1NTgzNjk3NDksInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklQa1F5S3dhNkxxeGo5eHZxNlBCZDNpYTdSN2FyZlUwcFMxMlJaWkFiZjV6Um94Y09wbVNkNlpKcUhJZHA0Q2RYU05JSXYzc3gyRHhWYkxqMFZfWlZwX3BITDFOenRQY2NzdjI2U0RjU3JscC1qSUlmQ1gtS040RXRfb0lUTnd1XzhvZmwzclByRHdja2d1U0VCU2N3RF9yOTIwdkRRLWhQVF9pRzNYeTFwWm5BVkNKaExpaFJKZXpjbGJhWF9yX0FnY1MzY3ZLVzNtUGFQd2lWeDZwNzAtS0FCTDJhaDF4M2FIU1RfXzR3UWxCU09UeV9hVm1uTnpzRXpsdm5RY0VKNXpfdkdsWFdrRmYyU3ljYlJkY0RfVV9TREdzS2xNS2RHaXVIRWVJbDU0YUNkNk52emRfVHZlYjRqVVo5QzVmc3JKUGlrM3huNUljU0FsYS16VTBLb1QwTFNraElEWkhfRGRRc0g1NzhaLWQ4VGFWVzUwVkhiZTJtZFFSeW5nemdMVnpONWZ6R1g2TzZQV1ctMFVuUkJGdWVyYkM5a0x0VWtqSXdzT3J3RVJ5QXJ1OWpXOUwtbEJuOVd4VkNzQ3VWSkRpMldGdUJMUzR4dzh2US1rSlphVnVObG5ROUVQQzdENWNyaER4M1NqNnFJYWJ3YlNhYV9YdUt1aVpmSlBRTTJYSTE1Q3FQUDRtNkZnYWdCQ0stNDFOVUk0MzN2c1RQUVdLR1ppSjB3TGFxUSIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BSDYzNDVWNDdVNDVCWUZSRjVIUEJZWFJLV1RTSkRBNEVCRUtONllUUk1VUzNHSDJKT05VWkRMRlpURUFHSUZCRk5KRzQ1R1NPUTRRTkZMSDJPNzVKTTRJWjdUWUFISExQV0NRSzdGNTRCWVlPVUhLREEyQUszUjRPTEdaR0ZHTUkzSUNOV01TWlBTTFdBVFVaTlMzVDI0WFJMNlJQSVVWT1BJTU9SQzVJUVhDSkhDUFJZSVRZIiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQUhDNDNBVEVHTVdTWDRUWVVZUktEMkFRS0xNNFZNWTMzVUM1MlpIR01ZTjdJTzJZR1JIVEdSRlRYSFpKVE1XS1VUQlNFWlVGRzNCWUc0WkZIRU1KSU82WjZCTkk0M1pOUkVTUzVEWEtWSEVPSldZUEQyWVlSRUROSEhXVEtGUEhXVkRKNk5WU0pBUURMV09RSEJENFpXRUVURzNPSU5NVFBMS0tYSDVENjZWR0xRSVhRNVhLTjJON01UVEtQQk5UU0pKUkFaUUVTS04zTVJRIn19.Jew7aIwhYDw_tf1GoBJC_QNbHsMNlguqIRbwFDZ_-syioBEFMUmVUNC2Dug0BDzxP_BsGL2iy0qYkyBFl4p5NIslRe26HY-uKp3kX0rXba11YSxsav7EjIL-1Fznf2g4vUBhWN3kIbmz0RRIPQO4-zc1VxatpyJSj1Lb8ehwYaEt0ER2oy8ShMxVFFtbkXudT1tJzNLjlgHe6HXM000H_KhlXf2w_CzW_FPGTn4HiWpGGO_xMykKWlKIdovnRWm41eSgxSivw1oqlJDMnrvjxl5E3w7s36sc7JCiN5mV3S88XK2r7JtbIGsa2FC8hoDwNU5-L120q9qKpx5TST1iFg",
                    "scopes": {
                        "alexa::devices:all:geolocation:read": {
                            "status": "GRANTED"
                        }
                    }
                }
            },
            "device": {
                "deviceId": "amzn1.ask.device.AH6345V47U45BYFRF5HPBYXRKWTSJDA4EBEKN6YTRMUS3GH2JONUZDLFZTEAGIFBFNJG45GSOQ4QNFLH2O75JM4IZ7TYAHHLPWCQK7F54BYYOUHKDA2AK3R4OLGZGFGMI3ICNWMSZPSLWATUZNS3T24XRL6RPIUVOPIMORC5IQXCJHCPRYITY",
                "supportedInterfaces": {}
            },
            "apiEndpoint": "https://api.amazonalexa.com",
            "apiAccessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjg0YzAxZDJlLTcyZDMtNDIwYS05N2NhLTYzNjQwZmJlNWM4OCIsImV4cCI6MTU1ODM3MDA0OSwiaWF0IjoxNTU4MzY5NzQ5LCJuYmYiOjE1NTgzNjk3NDksInByaXZhdGVDbGFpbXMiOnsiY29uc2VudFRva2VuIjoiQXR6YXxJd0VCSVBrUXlLd2E2THF4ajl4dnE2UEJkM2lhN1I3YXJmVTBwUzEyUlpaQWJmNXpSb3hjT3BtU2Q2WkpxSElkcDRDZFhTTklJdjNzeDJEeFZiTGowVl9aVnBfcEhMMU56dFBjY3N2MjZTRGNTcmxwLWpJSWZDWC1LTjRFdF9vSVROd3VfOG9mbDNyUHJEd2NrZ3VTRUJTY3dEX3I5MjB2RFEtaFBUX2lHM1h5MXBabkFWQ0poTGloUkplemNsYmFYX3JfQWdjUzNjdktXM21QYVB3aVZ4NnA3MC1LQUJMMmFoMXgzYUhTVF9fNHdRbEJTT1R5X2FWbW5OenNFemx2blFjRUo1el92R2xYV2tGZjJTeWNiUmRjRF9VX1NER3NLbE1LZEdpdUhFZUlsNTRhQ2Q2TnZ6ZF9UdmViNGpVWjlDNWZzckpQaWszeG41SWNTQWxhLXpVMEtvVDBMU2toSURaSF9EZFFzSDU3OFotZDhUYVZXNTBWSGJlMm1kUVJ5bmd6Z0xWek41ZnpHWDZPNlBXVy0wVW5SQkZ1ZXJiQzlrTHRVa2pJd3NPcndFUnlBcnU5alc5TC1sQm45V3hWQ3NDdVZKRGkyV0Z1QkxTNHh3OHZRLWtKWmFWdU5sblE5RVBDN0Q1Y3JoRHgzU2o2cUlhYndiU2FhX1h1S3VpWmZKUFFNMlhJMTVDcVBQNG02RmdhZ0JDSy00MU5VSTQzM3ZzVFBRV0tHWmlKMHdMYXFRIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFINjM0NVY0N1U0NUJZRlJGNUhQQllYUktXVFNKREE0RUJFS042WVRSTVVTM0dIMkpPTlVaRExGWlRFQUdJRkJGTkpHNDVHU09RNFFORkxIMk83NUpNNElaN1RZQUhITFBXQ1FLN0Y1NEJZWU9VSEtEQTJBSzNSNE9MR1pHRkdNSTNJQ05XTVNaUFNMV0FUVVpOUzNUMjRYUkw2UlBJVVZPUElNT1JDNUlRWENKSENQUllJVFkiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BSEM0M0FURUdNV1NYNFRZVVlSS0QyQVFLTE00Vk1ZMzNVQzUyWkhHTVlON0lPMllHUkhUR1JGVFhIWkpUTVdLVVRCU0VaVUZHM0JZRzRaRkhFTUpJTzZaNkJOSTQzWk5SRVNTNURYS1ZIRU9KV1lQRDJZWVJFRE5ISFdUS0ZQSFdWREo2TlZTSkFRRExXT1FIQkQ0WldFRVRHM09JTk1UUExLS1hINUQ2NlZHTFFJWFE1WEtOMk43TVRUS1BCTlRTSkpSQVpRRVNLTjNNUlEifX0.Zi6B5m2_mQbIFsS9RQT4KD-0uXEKGpPZcAd4aljEcrRAck0vcCTQIVzCP0PEljhkM23zdVUcAj_McUWRoOsez8Fgj4oXNqq82k5bEk9rUw4tvo4POVVl1DPeTffUdakELJM-1M3d6Q5OZXJ8QxB8RYU01n0sp9ZGa7XOK1-HjDeBPxKCld1nGhgyiCzi7RmjNg-1-tHABTxntEROarpzKcjFVdkOquFHL75KV8EgQDjCdwCXus8qUmrdK2QLVymxjOfSjtkqlZovtfDYWCvuHQbA0Sddx4RaLzV3-mrnkyG8VhcPbv8-pjGIdWGv4t5l43PqScKd33Zg4YiwI8OOYQ"
        }
    },
    "request": {
        "type": "IntentRequest",
        "requestId": "amzn1.echo-api.request.b69d0425-1993-40a1-91ba-ea6847b672f5",
        "timestamp": "2019-05-20T16:29:09Z",
        "locale": "en-US",
        "intent": {
            "name": "FindMyRealtimeLocationIntent",
            "confirmationStatus": "NONE"
        }
    }
}
{
    "version": "1.0",
    "response": {
        "shouldEndSession": true
    },
    "sessionAttributes": {}
}

JOVO DOCUMENTATION (http://bit.ly/2JStE91) image

OUR CODE (src/app.js) image

JOVO DEBUGGER image

Your Environment

Voice-First-AI commented 5 years ago

It appears the catch statement does not catch the error message....

I updated my code to:

async FindMyRealtimeLocationIntent() {
        try {
            const address = await this.$alexaSkill.$user.getDeviceAddress();
            this.ask("YOU DID IT!")
            console.log(address);

        } catch(error) {
            if (error.code === 'NO_USER_PERMISSION') {
                this.$alexaSkill.showAskForAddressCard()
                    .tell(`Please grant access to your address in the Alexa app.`);
            }
            this.ask("YOU DID IT!" + error)
        }
    },

Why would I receive an error: Error: Access denied with reason: FORBIDDEN

image

Voice-First-AI commented 5 years ago

Now I am printing error.code

I receive the error: NO_SKILL_PERMISSION

How do I overcome this barrier?

Is there a permission I can add to project.js?

Is this step documented in Jovo Documentation?

If not, can we add this to Jovo Documentation?

Voice-First-AI commented 5 years ago

I have updated the documentation and

created a pull request to be more helpful....

View Merge Request: https://github.com/jovotech/jovo-framework/compare/master...VoiceFirstTech:patch-4

We can close this issue once the documentation is updated.

aswetlow commented 5 years ago

Awesome! Create a Pull Request and we will merge it immediately.

natrixx commented 5 years ago

Hi @VoiceFirstTech!

Good catch and addition! I was looking at the diff you linked above ( I do not yet see a PR as indicated ) and had a couple notes:

  1. Could you also add info about the country/postal code permissions in the section prior to this? They are alexa:devices:all:address:country_and_postal_code:read

  2. The geolocation section below this has a section with permissions. Could we follow the same style with these two additions for consistency?

aswetlow commented 4 years ago

Closing this due to inactivity