Book Image

Voice User Interface Projects

By : Henry Lee
Book Image

Voice User Interface Projects

By: Henry Lee

Overview of this book

From touchscreen and mouse-click, we are moving to voice- and conversation-based user interfaces. By adopting Voice User Interfaces (VUIs), you can create a more compelling and engaging experience for your users. Voice User Interface Projects teaches you how to develop voice-enabled applications for desktop, mobile, and Internet of Things (IoT) devices. This book explains in detail VUI and its importance, basic design principles of VUI, fundamentals of conversation, and the different voice-enabled applications available in the market. You will learn how to build your first voice-enabled application by utilizing DialogFlow and Alexa’s natural language processing (NLP) platform. Once you are comfortable with building voice-enabled applications, you will understand how to dynamically process and respond to the questions by using NodeJS server deployed to the cloud. You will then move on to securing NodeJS RESTful API for DialogFlow and Alexa webhooks, creating unit tests and building voice-enabled podcasts for cars. Last but not the least you will discover advanced topics such as handling sessions, creating custom intents, and extending built-in intents in order to build conversational VUIs that will help engage the users. By the end of the book, you will have grasped a thorough knowledge of how to design and develop interactive VUIs.
Table of Contents (12 chapters)

Securing the Node.js webhook for Dialogflow

You will now make slight modifications to the Node.js code in order to secure the webhook. The one you deployed is not secure and anyone can access it.

  1. Go to Dialogflow and to the Fulfillment section.
  2. In the headers, add the key mysecret and the value 12345.

The following screenshot shows the security header added to the webhook:

Securing the webhook
  1. Edit server.js. Add code that extracts the mysecret key using let secret = req.get("mysecret"). Then, check the value and see if it is equal to 12345. If it is equal, process the request, and if not, return a 403 access denied response return response.status(403).end('Access denied!').

The following code shows the modified code that secures the webhook:

app.post('/fortuneCookie', function (req, res) {
let secret = req.get("mysecret");
if...