Google Actions permission access - actions-on-google

I have created a project on Google Actions. I would like to share the action with my friend. I tried giving them Viewer and Role Viewer access but they are not able to access the action on their mobile's Google Assistant App.
Could you tell me which Role shall I give it to them so that they can access my actions.

I think you should choose "Project / Viewer" as role.

Once you have given them viewer access from your owner account, the Google Project will now be visible on their Actions console. Going in they will have to toggle the test status to ON, so that they can invoke the action from their mobile devices. I don't think there is a easier way around this.

Related

Share button not found (anymore) in Google smart home action test simulator

We are developing a google smart home action. As per this and this guides we added testers as viewer and shared action and it worked few months ago. Now we don't see this share button in our simulator anymore. Wonder how to share with testers anymore? As guides still wants us to share the project through this button.
Screenshot from documentations:
Screenshot of my simulator:
We are able to add the tester in IAM project, but tester is unable to see the action like owner does ([test] ABC agent) in google assistant app.
Edit 1:
It doesn't work even sharing an action with owner rights. Second user is unable to see that action in Home Control under google assistant app
As per discussion with 'Actions on Google Support Team' they say that "There has been a slight modification on the interface in the simulator page. Unfortunately, the current documentation hasn't been updated yet to reflect this change."
You can still share your Action without the share button. To recap:
Go to the Actions console and select your project.
In the right navigation menu, select the three dot icon and then Manage User Access.
This redirects you to the IAM page for your project.
Click ADD to set a team member's access to your project. You must be an owner of the project.
Type the member's email address in the Members box. To assign view access, from the Roles menu, select Project and then Viewer. The members you add will be able to see the Action on their console. Please note that the system does not proactively notify the added members.
Tester/Viewer will have to login in to console and Enable testing in simulator to see the action in Google Assistant App.
Happy Coding !

Google Action and DialogFlow error "Sorry, this action is not available for your app"

I created a DialogFlow app that works perfectly in my developer account.
But I need to test it as another user, so in my Google Action simulator, I added another test account as a OWNER to the project.
I verified this user has OWNER status in both the DialogFlow and Google Action UI.
They are able to edit both projects with full access.
However, when the test account tries to use the simulator it says:
Sorry, this action is not available for your app. Sorry, this action
is not available for your app. In the simulator, you are only able to
invoke actions that you have added to your app. For more information
on how to invoke your app, click here
https://developers.google.com/actions/discovery/explicit
This makes no sense to me:
I verified the test user has OWNER/ADMIN status on both DialogFlow and Google Actions for the project.
In DialogFlow, I verified the Google Assist is pointing to Default Welcome Intent as the default intent.
In Google Actions, I verified that the Default Welcome Intent is visible on the BUILD > ACTIONS UI.
As others suggested, I tried renaming the app several times with no luck.
I tried publishing an Alpha version, with still no luck.
My gut tells me it is some sort of permission/visibility problem, but I am completely stuck. Any ideas would be of great help.
EDIT:
THIS ISSUE HAS BEEN SOLVED. SEE COMMENT BELOW.
"I revisited my activity controls and noticed my "Web and App Activity" had a special clause due to organization permissions. I completely missed it due to the confusing UI. Posted a picture in the main thread. Thanks for reminding me to double check that area."
After you asked your company admin to enable this feature, it should be same as the image in below.
This error message is quite misleading. I have encountered this error a couple of times, and generally the problem was with one of the privacy settings in my Google account.
In this case you should go to https://myaccount.google.com/activitycontrols, confirm that you are logged in using your test account, and make sure the following are enabled:
Web & App Activity
Device Information
Voice & Audio Activity

DialogFlow: Google Calendar Event function from Google Actions (Oauth2)?

I have created an agent in DialogFlow that interacts with the user giving her the ability to check for details like demographic from a back-end database. I have achieved this using Fulfillment/Webhook calls and have successfully parsed/returned different types of Responses to the user to play with. I have tested this on both an Android device and the Google Actions Simulator.
Now, what I want to achieve is to give user the ability to "Set a Reminder" on a platform like Google Calendar or similar through my App. By default, Google Assistant does this by simply telling it to "remind me..." and Google creates a reminder in the calendar. But as soon as I invoke my app, the Assistant is out of scope so using the "remind me" command won't work. I want to use the Google Calendar for example to create a reminder through my agent so that the user is notified at the due time.
I understand that when the user invokes an App in Google Assistant, she is using her Google credentials so I guess if I want to use the App to create a reminder, I should have the option. I have had a look at the Calendar API but I am not sure if I should proceed that way. Is there a better way of achieving this?
Please note, I want to use a reminder service that is available to the user without subscribing to a third-party service.
The Calendar API is the way to go. Details here.
In those docs you'll see reference to the access token, which you can get by using the helper intent askForSignIn (example of use here in one of Google's example projects).
Hope this helps!
So for all those who are facing the same issue, here is what I did:
First created an account on https://auth0.com
Followed this guide to configure the necessary settings to link to Google Assistant (ignored the Jovo part)
Used Auth0 guide to configure and link to my Google project credentials (ignored the Admins SDK Service part)
Now when I run my Google Actions App on the device, a button "Link [App Name] to Google" showed up. Clicking on that "signed me in".
Parsed the response in my webhook to grab originalRequest.data.user.accessToken
This is the token mentioned in #lukedavis answer. The next step was to use the token to execute a call to the Calendar API. Upon trying that, I am facing a different problem which I am trying to find the solution for. But the above should assist those who wish get the accessToken.

Create a facebook application programmatically

I'm trying to programmatically create an application in Facebook. I can do that with this:
https://www.facebook.com/connect/create_app.php?api_key=[key]&name=app_name
However, there's always a popup that says "Allow [Root App] to integrate Facebook functionality for you?" ... OK.
Is it possible for the "Root App" to create the application on the user's behalf without the popup via some previous permission which they have allowed, like stream_publish ...etc or maybe a session_token or ??
Someone said I can create child apps via "admin.setAppProperties" but couldn't get it working. I've also tried "FB.Connect.createApplication" and "Facebook.createApplication" but also failed.
Can anyone help? Maybe with some sample code.
There used to be an API for this but I think it has been discontinued. You can see if you can hack it together from the information available here:
http://blog.programmableweb.com/2009/10/15/facebook-lets-you-easily-integrate-into-sites-and-widgets-with-new-create-application-api/
Child applications (I believe they called them 'fourth party applications') intentionally need user interactions to create.
The documentation for https://www.facebook.com/connect/create_app.php?api_key=[key]&name=app_name is scarce to none. Are you able to access the API key of the newly created application somehow? Or set further app settings such as site-url?
I'm thinking you would need the user's permission to view /accounts then monitor before/after state to detect which one was created.
Is it possible for the "Root App" to create the application on the
user's behalf without the popup via some previous permission which
they have allowed, like stream_publish ...etc or maybe a session_token
or ??
If you create a Facebook application that only pulls someone's profile information, and then you add new functionality that allows it to automatically post on people's walls; you would have to require the user to re-authenticate themselves to give you those extra permissions.
It's hard to understand what you meant by that question.

How do I create a template in facebook?

I cannot find the "create feed template" option on my applications page.
Do I need to authorize my application? I didnt do that yet and am able to allow the user to login and allow permissions etc.
I havent submitted my application as it says the app needs 5 people or 10 monthly users, I just created it and my iphone app isnt out yet?
If I get to the Test console on facebook I dont see my app in the drop down menu? I dont even see a drop down menu.
How Do I create a template? Did facebook change the layout again :P making these tutorials off point?
Yea there's no such thing as templates anymore, you just pass the content as part of the api call.
Start here: http://developers.facebook.com/docs/reference/rest/stream.publish