About the Author |
|
xiii | |
About the Technical Reviewer |
|
xv | |
Acknowledgments |
|
xvii | |
Introduction |
|
xix | |
|
|
1 | (142) |
|
Chapter 1 Voice User Interfaces |
|
|
3 | (12) |
|
Why Voice User Interfaces? |
|
|
3 | (1) |
|
|
4 | (4) |
|
|
8 | (3) |
|
|
11 | (2) |
|
Why Voice? Why Alexa? Why Now? |
|
|
13 | (1) |
|
|
14 | (1) |
|
Chapter 2 Routines and Blueprints |
|
|
15 | (12) |
|
|
15 | (1) |
|
|
16 | (2) |
|
|
18 | (7) |
|
|
25 | (2) |
|
Chapter 3 The Developer Accounts |
|
|
27 | (18) |
|
Creating the Developer Accounts |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (3) |
|
|
33 | (9) |
|
|
42 | (1) |
|
|
42 | (2) |
|
|
44 | (1) |
|
Chapter 4 Creating the VUI for a Custom Data-Driven Skill |
|
|
45 | (42) |
|
Step 1 Create the Base Skill |
|
|
45 | (5) |
|
The Skill Builder Interface |
|
|
50 | (3) |
|
|
53 | (32) |
|
|
53 | (1) |
|
|
54 | (2) |
|
|
56 | (2) |
|
Creating the Custom Slot Values |
|
|
58 | (15) |
|
|
73 | (12) |
|
|
85 | (2) |
|
Chapter 5 Writing the Back-End Code |
|
|
87 | (32) |
|
|
87 | (2) |
|
Installing the Python Modules |
|
|
89 | (2) |
|
|
91 | (4) |
|
The Code We Have in the Template |
|
|
91 | (2) |
|
|
93 | (2) |
|
The Changes We Need to Make |
|
|
95 | (14) |
|
Changing the Launch Request Handler |
|
|
96 | (1) |
|
Creating the Helper Functions |
|
|
97 | (2) |
|
Creating the Calculate BMI API Handler |
|
|
99 | (5) |
|
Creating the Intent Handler |
|
|
104 | (3) |
|
|
107 | (1) |
|
Add the Request Handlers to the Skill Builder |
|
|
108 | (1) |
|
Testing the Completed Skill |
|
|
109 | (8) |
|
Setting Up the Debug Environment |
|
|
109 | (4) |
|
|
113 | (4) |
|
|
117 | (2) |
|
Chapter 6 Publishing an Alexa Skill |
|
|
119 | (24) |
|
|
119 | (1) |
|
Distribution and Validation |
|
|
119 | (10) |
|
|
121 | (5) |
|
|
126 | (2) |
|
|
128 | (1) |
|
The Certification Checklist |
|
|
129 | (7) |
|
|
130 | (4) |
|
Testing Your Custom Skill for Certification |
|
|
134 | (2) |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
138 | (1) |
|
|
139 | (2) |
|
|
141 | (2) |
|
Part II Custom Skill Development |
|
|
143 | (184) |
|
Chapter 7 Custom Alexa Skills |
|
|
145 | (28) |
|
Alexa Hosted vs. Fully Custom |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (3) |
|
|
150 | (1) |
|
|
151 | (2) |
|
|
153 | (2) |
|
|
155 | (2) |
|
|
157 | (6) |
|
The Application Security Profile |
|
|
158 | (2) |
|
Configure Account Linking |
|
|
160 | (3) |
|
|
163 | (8) |
|
Creating the Security Role |
|
|
163 | (5) |
|
Creating the Lambda Function |
|
|
168 | (3) |
|
|
171 | (2) |
|
Chapter 8 Beyond Hello World |
|
|
173 | (32) |
|
|
176 | (3) |
|
|
179 | (1) |
|
|
180 | (1) |
|
|
181 | (5) |
|
|
186 | (5) |
|
|
191 | (3) |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
Linked vs. Unlinked Accounts |
|
|
197 | (1) |
|
|
198 | (3) |
|
|
201 | (3) |
|
|
204 | (1) |
|
Chapter 9 Configuring the VUI |
|
|
205 | (10) |
|
Exporting the Botmock Diagram |
|
|
205 | (5) |
|
|
210 | (1) |
|
Cleaning Up the Dialog Model |
|
|
211 | (3) |
|
|
214 | (1) |
|
Chapter 10 Using APL to Present on Screens |
|
|
215 | (28) |
|
|
215 | (3) |
|
|
218 | (19) |
|
Configuring the Imports for the Document |
|
|
222 | (1) |
|
|
223 | (9) |
|
Parameterizing the Height and Width |
|
|
232 | (2) |
|
Scaling the Boxes and Rows to Fit |
|
|
234 | (3) |
|
|
237 | (5) |
|
|
242 | (1) |
|
Chapter 11 Coding the Lambda Function |
|
|
243 | (26) |
|
Hook Up the VUI to the Lambda Function |
|
|
244 | (1) |
|
Creating the Intent Handlers |
|
|
245 | (11) |
|
The Structure of an Intent Handler |
|
|
245 | (2) |
|
Building Out the Intent Handlers |
|
|
247 | (9) |
|
Calculate 90-Year Calendar Values |
|
|
256 | (4) |
|
Define the Dataset for the 90-Year Calendar |
|
|
260 | (1) |
|
Scale the Visuals to the Current Screen |
|
|
261 | (2) |
|
Return the Rendered APL and Response |
|
|
263 | (4) |
|
Defining the Skill Builder |
|
|
267 | (1) |
|
|
268 | (1) |
|
Chapter 12 Unit Testing an Alexa Skill |
|
|
269 | (28) |
|
Unit Testing the Lambda Function |
|
|
269 | (7) |
|
Unit Testing the Launch Intent |
|
|
269 | (7) |
|
Unit Testing the Give Birthday Intent |
|
|
276 | (12) |
|
Testing in the Alexa Simulator |
|
|
276 | (4) |
|
Testing Give Birthday in the Lambda Function |
|
|
280 | (8) |
|
Using the Utterance Profiler |
|
|
288 | (8) |
|
|
290 | (3) |
|
|
293 | (3) |
|
|
296 | (1) |
|
Chapter 13 Storing the Data |
|
|
297 | (30) |
|
Account Linking and Access Tokens |
|
|
299 | (9) |
|
Linking Your Development Account |
|
|
299 | (5) |
|
Checking If an Account Is Linked |
|
|
304 | (2) |
|
|
306 | (2) |
|
Getting the User Profile from DynamoDB |
|
|
308 | (2) |
|
A Trio of Launch Request Handlers |
|
|
310 | (4) |
|
Adding the Yes Intent Handler |
|
|
314 | (2) |
|
Using Cards in the Response |
|
|
314 | (2) |
|
Saving the User's Profile |
|
|
316 | (3) |
|
Adding the View Calendar Intent |
|
|
319 | (6) |
|
Testing the View Calendar Intent |
|
|
322 | (3) |
|
|
325 | (1) |
|
|
326 | (1) |
|
Part III Using APIs in Advanced Skills |
|
|
327 | (80) |
|
Chapter 14 A Personal Net Worth Skill |
|
|
329 | (36) |
|
|
329 | (1) |
|
|
330 | (6) |
|
Creating the Personal Net Worth Skill |
|
|
336 | (1) |
|
Creating the Lambda Function |
|
|
337 | (7) |
|
|
344 | (9) |
|
|
353 | (3) |
|
|
356 | (6) |
|
|
362 | (2) |
|
|
364 | (1) |
|
Chapter 15 The Real Estate API |
|
|
365 | (22) |
|
Application Programming Interfaces |
|
|
365 | (1) |
|
The Real Estate Valuation API |
|
|
366 | (5) |
|
Adding the Give Home Stats Intent |
|
|
371 | (6) |
|
Back to the Real Estate API |
|
|
377 | (8) |
|
|
381 | (4) |
|
|
385 | (2) |
|
Chapter 16 The Stock Market API |
|
|
387 | (18) |
|
|
387 | (1) |
|
|
388 | (2) |
|
|
390 | (14) |
|
Adding a Delay to the For Loop |
|
|
393 | (1) |
|
The Completed GetStockValue Function |
|
|
393 | (2) |
|
Unit Testing the GetStockValue Function |
|
|
395 | (9) |
|
|
404 | (1) |
|
|
404 | (1) |
|
|
405 | (2) |
|
|
405 | (1) |
|
|
405 | (2) |
Index |
|
407 | |