alexa-toolkit
v3.2.2
Published
Toolkit to be used with alexa-sdk v1 to simplify Alexa development. **deprecated** This version of the alexa-toolkit is no longer supported. Please use the v2 release found here: https://github.com/Hearst-DD/ask-toolkit
Downloads
10
Readme
alexa-toolkit
deprecated
This version of the alexa-toolkit is no longer supported. Please use the v2 release found here: https://github.com/Hearst-DD/ask-toolkit or npm install ask-toolkit
Helper methods to be used in conjunction with Amazon's alexa-sdk
v1.
install
npm install --save alexa-toolkit
response handlers
Creates display templates, sends tracking events (if configured), links accounts with LWA (if configured) and sends response to Alexa.
TO USE:
index.js
- add
responseHandlers = require( "alexa-tools" ).response.handlers
- add
alexa.registerHandlers( responseHandlers, ... )
- add
- Replace all emits to
":ask"
,":askWithCard"
,":tell"
or":tellWithCard"
with"::ask"
or"::tell"
EXAMPLES:
- Replace
this.emit( ":askWithCard", output, reprompt, cardTitle, card )
withthis.emit( "::ask", { speech: { output: output, reprompt: reprompt }, card: { title: cardTitle, output: card } } )
- Replace
this.emit( ":tell", output )
withthis.emit( "::tell", { speech: { output: output} } )
HANDLERS:
this.emit( "::ask", askData, options)
this.emit( "::tell", tellData, options)
PARAMS:
askData = {
card: (Card),
speech: {
output: (String),
reprompt: (String)
},
display: (Display)
}
tellData = {
card: (Card),
speech: {
output: (String)
},
display: (Display)
}
options = {
outgoingIntent: {
name: (String),
slots: {
(String): {
name: (String),
value: (String)
}
},
saveRepeat: (Boolean) true,
shouldEndSession: true | false | null,
track: (Boolean) true
}
OBJECTS:
Card = {
image: {
smallImageUrl: (URL),
largeImageUrl: (URL)
},
output: (String),
title: (String)
}
Display = {
actionLinks: (Unknown),
backButton: (Enum) HIDDEN | VISIBLE (default),
backgroundImage: (ImageObj),
hint: (String) | (TextObj),
image: (ImageObj),
list: [List],
template: (Enum) BodyTemplate1 | BodyTemplate2 | BodyTemplate3 | BodyTemplate6 | BodyTemplate7 | ListTemplate1 | ListTemplate2,
text: {
primary: (TextObj),
secondary: (TextObj),
tertiary: (TextObj),
},
title: (String),
token: (String)
}
ImageObj = {
url: (URL),
description: (String)(optional)
height: (Int)(optional),
width: (Int)(optional),
size: (Enum)(optional) X_SMALL | SMALL | MEDIUM | LARGE | X_LARGE
}
List = {
image: (ImageObj)
text: {
primary: (TextObj),
secondary: (TextObj),
tertiary: (TextObj),
},
token: (String)
}
TextObj = {
type: (Enum) PlainText | RichText,
text: (String)
}
image specs
- BackgroundImage
- 1024 x 600
- ListTemplate1
- 88 x 88
- ListTemplate2
- Portrait (192 x 280)
- Square (280 x 280)
- 4:3 (372 x 280)
- 16:9 (498 x 280)
- BodyTemplate1
- inline images only
- BodyTemplate2
- 340 x 340
- BodyTemplate3
- 340 x 340
- BodyTemplate6
- 340 x 340
- BodyTemplate7
- scalable
- maintains aspect ratio
Size Recommendations:
- X_SMALL: 480 x 320
- SMALL: 720 x 480
- MEDIUM: 960 x 640
- LARGE: 1200 x 800
- X_LARGE: 1920 x 1280
response utils
alexa-tools.response.utils.replaceInSpeechAndCard( responseData, replaceObj )
- Replaces all instances of replaceObj key with value of replaceObj key in responseData speech output, speech reprompt, card title and card reprompt.
- Example:
returns:alexa-tools.response.utils.replaceInSpeechAndCard( { speech: { output: "replace {foo}" } }, { "{foo}": "bar" } );
{ speech: { output: "replace bar" } }
alexa-tools.response.utils.replaceInDisplay( responseData, replaceObj )
- Replaces all instances of replaceObj key with value of replaceObj key in responseData display primary, secondary and tertiary text.
- Example:
returns:alexa-tools.response.utils.replaceInDisplay( { display: { "template": "BodyTemplate2", "text": { "primary": { "type": "RichText", "text": "replace {foo}" }, "secondary": { "type": "RichText", "text": "replace {foo}" }, "tertiary": { "type": "PlainText", "text": "replace {foo}" } } } }, { "{foo}": "bar" } );
{ display: { "template": "BodyTemplate2", "text": { "primary": { "type": "RichText", "text": "replace bar" }, "secondary": { "type": "RichText", "text": "replace bar" }, "tertiary": { "type": "PlainText", "text": "replace bar" } } } }
alexa-tools.response.utils.replaceInAll( responseData, replaceObj )
- Makes calls to
replaceInSpeechAndCard
andreplaceInDisplay
analytics
- Add
ANALYTICS_PROVIDER
env var (default: VOICELAB)
alexa-tools.analytics.enums.analyticsProvider = {
DASHBOT: "dashbot",
VOICELAB: "voicelab"
}
- Add
ANALYTICS_TOKEN
env var index.js
- add
analytics = require( "alexa-tools" ).analytics
- add
analytics.init( event );
after Alexa instantiation.
- add
- Use response handlers
::ask
and::tell
list-api
- Helper methods for adding items to an Alexa list
utils
- General helper methods.