How to migrate from Cloud Functions for Firebase to App Engine Standard Enviornment for Node.js
Disclaimer: I wrote the Dialogflow Fulfillment library and had significant design input into the Actions on Google v2 client library TL:DR - if you want to make something for the Google Assistant, the Actions on Google v2 client library is the best you can get. If you don’t know what platform you’d like to start with or want to use multiple platforms (the Google Assistant and Alexa and Facebook Messenger) try out the Dialogflow fulfillment Node.
Here is my latest action for the Google Assistant: Been Pwned. To try it out just say/type “Talk to Been Pwned” (pronounced “owned” with a “p” in front) to any Google Assistant device. I used Troy Hunt’s excellent Have I Been Pwned v2 API to tell you if your email or website was compromised in a data breach. Check out the code on Github. Some findings: Google Speech recognition is surprisingly good at parsing spoken email addresses Have I been Pwned’s API is excellent and well thought out (you can try out API calls in a browser) This was all written within Dialogflow using Dialogflow’s in-browser/console editor!
Disclaimer: I work at Dialogflow where it’s my job to make developing apps for conversational interfaces as easy as possible and I’ve built a few before, but I really did go from an idea to a submission for this Assistant app in 50 min with all the same tools and code you can use. I’ve been working on a lot of Dialogflow and Google Assistant samples lately and wanted to finish one, but most of the samples that I wanted to do and are currently working on were large, complex and would require quite a lot of work and polish to be ready for submission (VUI and designing conversations are hard!
TL;DR - Don’t teach your users how to talk. The state of conversing with computers Conversational interfaces are at an interesting point. Like VR, there are two things happening in the space: 1) new technology has been developed that has the potential to turn the space from a gimmick to a major new surface of computing and 2) the technology has begun to mature and best practices and development trends have started to emerge.