I would like to develop an own google-action for google-home.
When I write a google-home-fulfillment will I be able to control my google chromecast?
How would I authenticate myself against a google chromecast?
Related
I have been making Google Home apps, but now I want to make apps that are connected to Firebase server and DialogFlow API. How is it possible to integrate user authentication in an ios app to identify that user who is using Google Home with that login state?
For example, if I make a restaurant ordering app, I want any user to make a request through Google Home and the user can check his/her ordering history on an ios app.
A user logs in through an app and then how does google home detect that user as a logged in user? I have been searching how to implement this, but nothing hits.
You will need to implement account linking for Actions on Google. This will require two server-side components that you'll need to build:
You'll need to create an OAuth server that will allow the user to authenticate to your service (and use Firebase auth as a component of this) and authorize the Google Assistant to access your service. It does this by generating tokens that it hands to the Assistant.
Your Dialogflow fulfillment webhook will get this token passed to it as part of the conversation. It uses this token to determine which user is making the request and confirm it is valid.
There are OAuth services that are available that work with Google's auth that you should be able to fit in here, or you can write your own using Firebase Hosting and Firebase Cloud Functions. The Dialogflow webhook can, of course, be done using Firebase Cloud Functions.
I am developing a Google Assistant app for Google Home, and about to launch the app. I am wondering, once my app is live on the Google Assistant platform, whether I (as a developer) would have access to all of the conversation histories as users interact with my app.
If so, does Actions on Google / Google have some sort of interface to view / download the history? Or, do I have to log and capture the history myself? I thought the history will be really helpful for me to improve my app.
Many thanks!
It depends a bit on how you have built your Action.
If you have built it with one of the templates - then no, you don't have access to the conversations.
If you have built it with the Actions SDK or with Dialogflow, then you will have access to quite a bit of information that is delivered to your fulfillment webhook. If you have intents that do not send anything to your webhook - you will not get that information.
There are tools that help you examine conversation flow, see where users get stuck or fall out of the conversation, or how they're using your Action. Most of them have good integration with the Actions on Google libraries. I use a combination of Chatbase, Dashbot.io, and Google Analytics.
The promotion videos of Google Assistant show that it can stream a video on the family's chromecast. However, https://developers.google.com/actions/ doesn't talk about that feature.
Is this feature already implemented?
Although Google Home and Google Assistant can control media devices and streaming - this is not something that works through the Actions on Google API yet. It was mentioned at I/O that there would be an API to send things to a Chromecast display, although the details aren't available.
I would like to develop a REST API app that I can access from both web app and mobile app.
The REST API need to support simple authentication that can be done in both from a web app and from a mobile app (like Xamarin.forms)
I don't need multiple users, I need simple access control to my API.
I tried to develop a Azure API app with AD authentication, but it seem like it is very difficult to add support to Azure API App.
To summarized my questions:
How to do simple authentication in Azure API App or Mobile App?
Should I use API App or Mobile App or something else?
Does it support Xamarin and Web app access?
This is way too broad. Are you doing data access? Do you need simple auth? Have you tried any of the quickstarts to try to learn about your task?
Look at Azure App Service Authentication / Authorization - it provides a server directed flow for web and mobile access
This should have been your first question. You want an ASP.NET app, running on App Service (I'm biased here). It should cover both API, Mobile and Web together.
Yes, the App Service covers all your needs.
I have a Google API console premier account, and I'm using the places service for an application that has two parts, web app and mobile app.
It seems that Google API distinguishes between server and browser apps. So for each category I have to generate keys specifically for it.
The mobile app is a native iPhone App, that uses the Google Places Web Services XML API for a simple auto complete function.
The question is in which category does mobile apps fall in?
Browser Apps
Server Apps
And any resources of how to use them?, does the Google JavaScript API V3 still requires an API Key for the premium users? Google documentation about this subject does not have enough information.
There are two different interactive types of Mobile Apps that use Google Maps:
ones that use the Maps Javascript API v3 (either directly or embedded in a Native Application)
ones that use Native Google Maps APIs (currently available for Android and iPhone)
For more on that you can have a look at:
http://code.google.com/apis/maps/articles/mobile_overview_v3.html
Ones that use the Maps JS v3 are Browser Apps, the Native Apps are neither. They have their own TOS and quota system, like the one for iPhone and the one for Android.
About Google Maps JS API v3. It an be loaded :
without any key
with an API console key, which will allow you to track your usage (this was introduced recently)
with Maps Premier client id (gme-) if you are a Maps API Premier customer
The XML web service for places API should be used only as a server side solution. This is because you can imagine that a user might steal your key from the source of your iPhone app (by sniffing on the traffic) and use it.
The safe way out is to use a proxy server. You would then register an App Key for server apps (with IP locking for your proxy server) and then make calls to the Places API from this proxy.
Another option would be to use UIWebView on the iPhone side with JS Maps API v3 and Places library on the Google side. You would then fall in "ones that use the Maps Javascript API v3 in a Native Application" category.
You could then use any of the 3 options to load JS Maps API that are mentioned above.
I had to cut away some links, since I am not able to paste more than two, but I hope that helps anyway
Unless you have strong reasons against it, the "ones that use the Maps Javascript API v3 in a Native Application" category is the best option. There's a nice talk from Google I/O 2010 about it: http://www.google.com/events/io/2010/sessions/map-once-map-anywhere-geospatial-apps.html