Alexa.NET – More Than Voice Name : Steven Pears Twitter: @stevenpears Github: stoiveyp

Alexa.NET – More Than Voice Name : Steven Pears Twitter: @stevenpears Github: stoiveyp

Little about me Work for Experian 🔥 1 Outage / Decade 📜 Certified Skill Builder

Little about Alexa

Little about Alexa English (AU) English (CA) English (IN) English (UK) English (US) French (CA) French (FR) German (DE) Hindi (IN) Italian (IT) Japanese (JP) Portuguese (BR) Spanish (ES) Spanish (MX) Spanish (US)

Little about Alexa

Little about Alexa 28,000 devices can work with Alexa 150 with Alexa built in No official .NET SDK

Alexa.Net https://github.com/timheuer/alexa-skills-dotnet

Roll Caster

Request Flow “Alexa, open Roll Caster” {Request} Alexa “Hello” {Response} User Female by Noe Araujo from the Noun Project

APIs API by Becris from the Noun Project

Request Flow “Alexa, open Roll Caster” {Request} Alexa “Hello” {Response} User Female by Noe Araujo from the Noun Project

Request Flow {Request} Request Type Request Data Request Context Device Information User Identification API Access {Response} User Female by Noe Araujo from the Noun Project

Progressive Response https://developer.amazon.com/blogs/alexa/post/d9e00269-1c6c-44d1-91ec-0d8c92a919db/keep-users-engaged-entertained-while-processing-skill-responses

Progressive Response Send audio while processing a request Up to five “progressive” responses for each final response Great for passive confirmation

Personalisation https://developer.amazon.com/blogs/alexa/post/32191ba2-6bd4-43c0-99d3-fcc63bf1f9d6/getting-started-with-cake-walk-using-the-alexa-settings-api-to-look-up-the-device-time-zone

Customer Profile Given Name Full Name Mobile Number Address NuGet: Alexa.NET.CustomerProfile

Settings API Time Zone Distance Temperature NuGet: Alexa.NET.Settings

Reminders https://developer.amazon.com/blogs/alexa/post/e65a0e17-2716-4714-8d02-a50210fdd494/now-available-enable-reminders-for-your-skills-with-alexa-reminders-api

Reminders Created while using skill Absolute / Relative time Recurring Confirmed by the user NuGet: Alexa.NET.Reminders

Proactive Events https://developer.amazon.com/blogs/alexa/post/7822f3ee-1735-4eaa-9aa6-5b8e39953c07/proactiveeventsapi-launch-announcement

Proactive Events Sent to the user as required (still confirmed) Specific types of Events (Order status, Weather Alert etc.) Push Notifications NuGet: Alexa.NET.ProactiveEvents

Request Flow “Alexa, open Roll Caster” {Request} APIs Alexa “Hello” {Response} User Female by Noe Araujo from the Noun Project

Request Flow “Alexa, open Roll Caster” {Request} APIs Alexa Directive “Hello” Cards {Response} User Female by Noe Araujo from the Noun Project

Directives rules by Marie Van den Broeck from the Noun Project

Alexa Presentation Language https://developer.amazon.com/blogs/alexa/post/1dee3fa0-8c5f-4179-ab7a-74545ead24ce/introducing-the-alexa-presentation-language-preview

APL

RenderDocument NuGet: Alexa.NET.APL

Basic Controls Text Button Image Video

Layout Controls Container Pager Sequence

Data Binding Items: “${payload.itemlist}” Text: “${data.rollnumber}”

Data Binding When: “${viewport.shape == ‘rectangle’}” When: “${viewport.width > 1024}”

Responsive Controls Background Button Divider Header Footer Image Ordinal Page Counter Text List Item Headline TextListItem

Alexa “Show my history”

Commands Alexa Show Page 1 ExecuteCommandDirective

Commands Alexa Tap #1 UserEventRequest

Commands AutoPage SetPage ScrollToIndex ScrollToComponent SpeakItem Parallel Sequential

ExecuteCommands (v1.1) SetValue AnimateItem Custom Commands OnMount

APLT

APLT

In-Skill Purchasing https://developer.amazon.com/blogs/alexa/post/5d852c9c-8cdf-45c1-9b68-e2f02af26c89/make-money-with-alexa-skills

Products Entitlement Subscription Consumable NuGet: Alexa.NET.InSkillPricing

ConnectionRequest Buy Cancel Upsell

ConnectionResponse Bought Already Owned Purchased

Gadgets https://developer.amazon.com/blogs/alexa/post/ef044c94-db8e-49da-97a6-da124b0f786b/tips-for-building-echo-button-skills-with-the-gadgets-skill-api-beta

Gadgets NuGet: Alexa.NET.Gadgets

Gadgets Alexa Roll Call! StartInputHandler

Gadgets Alexa Device IDs InputHandlerEvent

Gadgets Alexa Events & Patterns StartInputHandler

Gadgets Alexa Event & Timeout InputHandlerEvent

Custom Interfaces ALL THE GADGETS! Pair over Bluetooth to device Messages use Protocol Buffers

Custom Interfaces Alexa ? ALL THE GADGETS!

Custom Interfaces Alexa Do Stuff SendDirective

Custom Interfaces Alexa Tell me stuff StartEventHandler

Custom Interfaces Alexa I DID STUFF! EventsReceived

Personalisation https://developer.amazon.com/blogs/alexa/post/db4c0ed5-5a05-4037-a3a7-3fe5c29dcb65/use-dynamic-entities-to-create-personalized-voice-experiences

Dynamic Entities “Roll {CustomName}” {CustomName}: My Dice

DialogUpdateDynamicEntities “Roll {CustomName}” {CustomName}: My Dice + Fireball + Flaming Hands

Leftovers Leftovers by Claire Jones from the Noun Project

Alexa.NET.Management

Management

Alexa.NET.RequestHandlers

Request Handlers bool CanHandle(SkillInformation information) SkillResponse Handle(SkillInformation information)

Request Handlers Launch Roll RollAgain Breakdown RollHistory BuySpecificProduct BuyAnyProduct PurchasedRollHistory DeclinedRollHistory ErrorRollHistory Help Fallback SessionEnded

Resources Alexa Blogs: https://developer.amazon.com/blogs/alexa/ Design Guide: https://developer.amazon.com/alexa-skills-kit/design Twitter: https://twitter.com/alexadevs

Alexa, end my talk. “Certainly. Are there any questions you’d like answered?”