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

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

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 !

Actions on Google: Alpha Tester

I read the guide on Actions on Google, concerning the publication of an alpha version
3 days ago, I have filled out the form
However, when I share the test link, this error appears:
At the moment it is not possible to find what you are looking for. Try later.
I'm pretty sure this is a Google bug
I did a further test:
I opened the link on an Android device
In this case I display a form to publish my review,
but anyway I can not test the application
Can you help me ?
You should not open this in the browser, instead choose the Google Assistant app on your mobile and open this page from mobile device. Then scroll down to the middle of the directory page/opt-in link you have been given and enable yourself as an Alpha Tester (you will see this button only if you have been whitelisted by the app owner/developer) and continue testing your app on mobile device.
You'll get this page for several hours after enabling alpha testing. After some time it switched to showing me the action directory listing for our app.
Once the page is active and you can see the directory listing you'll need to open the link on your mobile phone! This is mentioned in really small and un-emphasized copy under the link. Also, it's not immediately obvious as the opt in link will most likely be below the bottom edge of your phone screen. You'll have to scroll down to opt-in to alpha testing. Once you enable alpha-testing you should immediately have access to the action.
even i faced the issue , but you can alpha test by switching your account like in google assistant change your default account like the account you used for development.
this might help , thank you

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.

Google Action (Dialogflow) Account Linking not reliable during testing

I'm having a lot of trouble testing my google action's account linking. It uses the authorization oauth2 flow for account linking. I do not have transactions enabled but instead have required sign-in on the welcome intent and both of my other (custom) intents.
Immediately after implementing account linking, I tested the flow via the simulator and it worked perfectly. I then wanted to link my google account to a different account on my server, which means I needed to unlink and then link again. This is where things get fuuuuunky.
It looks like the docs are a bit outdated, but I eventually found a way to unlink, at least partially. The note in the blue box at the bottom of this page notes that you can unlink by disabling testing. The UI looks different from the screenshot, but I disabled testing within the Action Simulator UI by toggling 'Testing on Device'. I then re-enabled it and indeed my requests were no longer getting access tokens!
However, at this point, the linking flow was no longer being invoked when I ran commands via the simulator. I waited for a few hours and tried again - no dice. My dialogflow webhook simply isn't getting an access_token in the request body (property no longer exists), which is good, but I'm never prompted to re-link the account.
I tried the same using the Google Assistant app on a phone registered to my google account (same Google account being used in the simulator). Again, it worked the first time but after I toggled testing on my device, it started to fail permanently. So it seems device-specific? I did try an incognito chrome session as well as deleting cookies, neither of which worked.
Any ideas how I can properly unlink and then re-link my account during testing of a google action?
Thanks!

Facebook Testers Can't run my Facebook Dev Canvas App

I have taken the following steps:
On the Facebook dashboard, I created a Facebook App.
Also on the dashboard, I created a test app as a child of the Facebook app (the Dev version, for testing).
I uploaded a build of my app, and confirmed I could run it from the
admin account.
I gave two of my real-world Facebook friends the Tester role in the
dashboard.
When the real-world friends try running the app, they get 404 errors
"the requested URL was not found on this server" when it tries loading
"https://apps-APP_ID.apps.fbsbx.com/hosted-canvas/e30=/.
I am using Facebook's Simple Application Hosting. The url for the app is "https://apps.facebook.com/APP_ID". When the admin hits this it works fine, when the Tester hits it they get the error. Some have suggested that there is a sandbox setting that needs to be turned off, but I see no such thing in any of the settings on the Dashboard. Any insights you could offer would be greatly appreciated.
Not sure if it helps anyone figure it out, but the app consists only of a data file, a Javascript file (xxx.js), and an index.html.
Holy moly - alright I'm hoping this helps someone else out. Apparently, when you create an app, and then create a test app so that you can establish a dev environment for testing - which is standard procedure - you have to add any testers to the parent (production) app under "Roles". I was only adding it under "Roles" for the test app, which apparently is not enough. If anyone from Facebook is reading this, please update your docs, or update the dashboard to issue a warning to people who only add testers under the test app.
We also have to push the app to production (though yet to approved),
If the status is set to "testing", only admin user can find it in my case.