npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

botium-connector-alexa-smapi

v0.0.12

Published

Botium Connector for Amazon Alexa Skills API

Downloads

33

Readme

Botium Connector for Amazon Alexa Skills API

NPM

Codeship Status for codeforequity-at/botium-connector-alexa-smapi npm version license

This is a Botium connector for testing your Amazon Alexa Skills with the Skills Management API.

Did you read the Botium in a Nutshell articles ? Be warned, without prior knowledge of Botium you won't be able to properly use this library!

How it works ?

The Alexa Skills Management API enables Botium to talk to your Alexa skill.

It can be used as any other Botium connector with all Botium Stack components:

Requirements

  • Node.js and NPM
  • an Alexa Skill, and user account with development rights
  • a project directory on your workstation to hold test cases and Botium configuration

Install Botium and Amazon Alexa Skills API Connector

When using Botium CLI:

> npm install -g botium-cli
> npm install -g botium-connector-alexa-smapi
> botium-cli init
> botium-cli run

When using Botium Bindings:

> npm install -g botium-bindings
> npm install -g botium-connector-alexa-smapi
> botium-bindings init mocha
> npm install && npm run mocha

When using Botium Box:

Already integrated into Botium Box, no setup required

Connecting Amazon Alexa Skills API to Botium

This connector includes a CLI wizard to initialize the botium.json file holding your connection credentials.

This wizard is part of Botium CLI as well.

> npx botium-connector-alexa-smapi-cli init

This wizard will guide you through the Botium Connector setup. Please follow the instructions. It involves Copy&Paste from a web browser to this terminal window.

Adapt botium.json

Open the file botium.json in your working directory and add other settings if required.

{
  "botium": {
    "Capabilities": {
      "PROJECTNAME": "<whatever>",
      "CONTAINERMODE": "alexa-smapi",
      "ALEXA_SMAPI_API": "invocation",
      "ALEXA_SMAPI_SKILLID": "..."
    }
  }
}

Botium setup is ready, you can begin to write your BotiumScript files.

Extracting Test Cases from the Alexa Interaction Model

This connector provides a CLI interface for importing the Interaction Model from your skill and convert it to BotiumScript.

  • Intents and Utterances are converted to BotiumScript utterances files
  • Slots are filled with meaningful samples if possible ** You can hand over the samples to use with the --slotsamples switch ** For default slot types, samples are loaded automatically from the official documentation ** For custom slot types, the samples from the interaction model are used

You can either run the CLI with botium-cli (it is integrated there), or directly from this connector (see samples/cli directory for some examples):

> npx botium-connector-alexa-smapi-cli import --interactionmodel entityresolutionquizdemo.json

Please note that a botium-core installation is required

For getting help on the available CLI options and switches, run:

> npx botium-connector-alexa-smapi-cli import --help

Supported Capabilities

CONTAINERMODE: "alexa-smapi"

Set the CONTAINERMODE capability to alexa-smapi

ALEXA_SMAPI_API

default: "simulation"

Either "simulation" or "invocation" to use the respective Skill Management API

  • Skill Simulation API handles plain text input (including intent resolution)
  • Skill Invocation API handles structured input (intents and slots, no intent resolution done) and is therefore harder to use than the Simulation API

See the samples directory for configuration and conversation samples.

ALEXA_SMAPI_SKILLID

The Alexa Skill ID

ALEXA_SMAPI_LOCALE

default: "en-US"

The locale used for the simulation / invocation - list of valid locales see here

ALEXA_SMAPI_REFRESHTOKEN

The long-living refresh token. Typically, the refresh token is created with the initialization wizard (see above).

ALEXA_SMAPI_BASE_URL

default: "https://api.amazonalexa.com"

Skill Management API Url

ALEXA_SMAPI_CLIENTID and ALEXA_SMAPI_CLIENTSECRET

From your Amazon Security Profile

ALEXA_SMAPI_VENDORID

Amazon vendor id

ALEXA_SMAPI_ENDPOINTREGION

default: "default"

The AWS Endpoint the Skill is linked to (only required for Skill Invocation API) - see here

ALEXA_SMAPI_INVOCATION_TEXT_INTENT and ALEXA_SMAPI_INVOCATION_TEXT_SLOT

When using the Invocation API, tell Botium to use a special intent and a special slot to hand over the input text (intent resolution is done by Skill itself)

ALEXA_SMAPI_INVOCATION_REQUEST_TEMPLATE

default: the file invocation-request-template.json in this repository

When using the Invocation API, tell Botium to use a special template for the invocation request (JSON formatted).

ALEXA_SMAPI_AUDIO_CAPABILITY and ALEXA_SMAPI_DISPLAY_CAPABILITY

default: false

These will add Audio and Display capabilities when set to true to the invocation request sent to the Skill Management API.

ALEXA_SMAPI_REFRESH_USER_ID

default: false

This only works with the invocation API

This will generate a new userId to send within each different convo.txt file. By default the userId is botium-core-test-user and when generated the user will be botium-core-test-user-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx with a randomly generated UUID.

ALEXA_SMAPI_KEEP_AUDIO_PLAYER_STATE

default: false

This only works with the invocation API

If your skill contains audio player responses this will track the changes to the audio player such as the token and the playerActivity and allow you to use intents such as AudioPlayer.PlaybackNearlyFinished and other AudioPlayer intents and get the state back on the response.

ALEXA_SMAPI_SIMULATION_PHRASE

default: empty

This only works with the simulation API

Prepend this phrase to all user utterances