jovo-framework icon indicating copy to clipboard operation
jovo-framework copied to clipboard

Can't upload skill.json with included householdList API

Open NLueg opened this issue 2 years ago • 3 comments

I'm submitting a...

  • [x] Bug report
  • [ ] Feature request
  • [ ] Documentation issue or request
  • [ ] Other... Please describe:

Expected Behavior

It should be possible to deploy a skill that utilizes the householdList API from Alexa.

Current Behavior

I can't upload a skill.json which includes householdList inside the apis object. This for example also happens for the example I included in #1418.

I receive the following error code in the console:

Error Log

image

Additional information

I managed it to upload the skill.json directly with the Ask CLI:

ask smapi update-skill-manifest --skill-id <SKILL_ID> --manifest "file:./build/dev/platform.alexa/skill-package/skill.json" --stage development --debug

Your Environment

  • Jovo Framework version used: 4.2.28
  • Operating System: Windows

NLueg avatar Sep 07 '22 04:09 NLueg

How do you set up the permissions?

I tried this example and I got no error

 plugins: [
    // Add Jovo CLI plugins here
	new AlexaCli({

        // ...
        files: {
          'skill-package/skill.json': {
            manifest: {
              permissions: [
                { name: 'alexa::household:lists:read' },
                { name: 'alexa::household:lists:write' }],
            },
          },
        },
      
    }),
  ],

aswetlow avatar Sep 28 '22 15:09 aswetlow

Hey @aswetlow! Yes, the permissions work fine. But for using the list API of Alexa you have to add more data. You also have to add householdList to the used apis and add events to listen to:

 plugins: [
    // Add Jovo CLI plugins here
	new AlexaCli({

        // ...
        files: {
        'skill-package/skill.json': {
          manifest: {
            permissions: [{ name: 'alexa::household:lists:read' }],
            apis: {
              householdList: {},
            },
            events: {
              endpoint: {
                sslCertificateType: 'Wildcard',
                uri: '${JOVO_WEBHOOK_URL}',
              },
              subscriptions: [
                {
                  eventName: 'ITEMS_CREATED',
                },
                {
                  eventName: 'ITEMS_UPDATED',
                },
                {
                  eventName: 'ITEMS_DELETED',
                },
              ],
            },
          },
        },
      },
    }),
  ],

The problem here lies in the adding of householdList: {}, to the apis.

NLueg avatar Sep 29 '22 04:09 NLueg

Thank you!

We do "skill enablement" in our validation process after deployment. Looks like it doesn't work for skills using the householdList API. Bug on their side? 🤔

There is a workaround. You can skip validation by adding --async to your deploy command.

jovo deploy:platform alexa --async

Maybe it makes sense to remove the enable skill functionality from the validation part.

aswetlow avatar Sep 29 '22 08:09 aswetlow