Google action "isn't responding right now" after account linking completed - actions-on-google

Im developing a google action with account linking.
When a new user does an initial request to my action, I get it over the webhook and respond with the SIGN_IN response. The assistant asks the user to link the account. The users does so, and the action then reports "XXX isn't responding right now", yet there were no further webhook requests to respond to. There is nothing in the logs viewer other than the initial request.
The next request by the user works fine, indicating that account linking did indeed complete. How can I avoid this error to the user??

This is usually because you either have no Intent in Dialogflow which can handle the actions_intent_SIGN_IN event or you have one and it is not set to do webhook fulfillment and returns no response.

Related

webhook not receiving events from Messenger recurring message opt-in

Facebook recently released an optional Recurring Notifications feature for Messenger.
My group has attempted to use this feature in our app; in our chatbot flow, we present the user with the opt-in message, and when they click on the opt-in button, we are supposed to get a webhook event notification. Unfortunately, no request is coming to our webhook when the user clicks the button.
We've done some sanity checks:
The app is subscribed to messaging_optins notifications feed (v11).
I'm certain the webhook itself is configured properly, because our server is receiving other notification feeds (e.g. messages).
The problem also doesn't seem to be with our opt-in request button configuration, because even the Test button in the Facebook Developers dashboard (which is supposed to send a sample messaging_optins payload to our server) does not result in a call to our webhook.
Possibly irrelevant details: the page connected to this app is registered in Kenya and the webhook server is running on an AWS instance in Germany. We have another page registered in India connected to AWS in India, and that connection is working fine despite identical configuration.
What other things should we troubleshoot to identify the problem here?

Actions Builder account linking throwing unexpected response

I'm new to using the actions builder console. I'm trying to create an application called "test for reminder" and trying to use account linking to get user's email. I followed all the steps listed out on the account linking tutorial. However, when I trigger the action, I'm getting the following response: "To use test for reminder, you’ll need an account with test for reminder. To create a new one for you, I’ll just need some info. If you want more details, say "Tell me more." So, can I ask Google for your name, email address, and profile picture?"
I'm not sure where that response is being triggered and how to go past it. Is it unable to verify my google account? If the user is verified, I have an event handler which is supposed to trigger if the user is verified, but that is not happening either.
Any insights would be appreciated

Push Notifications with Conversational Webhook

I'm trying to get permission to send push notifications on Google Assistant through the conversational webhook.
I'm following the steps here under Actions SDK JSON
I have the first part with "Hi! Welcome to Push Notifications" working.
Then I send the second response under the ask for the UPDATE permission.
The problem is that it seems this is triggering some event on the google assistant side where it asks again for permission to send notifications see here
I think this requires me to define some other intent but how do I properly handle this so it will send me the request with the userID?

Payments in our game stopped working, "object does not exist"

Our in-game transactions suddenly stopped working properly in one of our games. When a player tries to buy something, they are charged, but then an unknown error occurs and the player is not provided the items they tried to purchase.
Here is the screenshot: https://i.gyazo.com/e7beb162e9e94c9dd50008f1e0b6b78c.png
According to our investigation, the object ID coming to our payment callback cannot be found, even through the Graph API explorer.
Here's an example:
Our server receives the following data from payment callback:
{"object":"payments","entry":[{"id":"1005703272873733","time":1479471429,"changed_fields":["actions"]}]}
We then send a request:
https://graph.facebook.com/PAYMENT_ID?access_token=APP_ACCESS_TOKEN
and receive an error message. The same error occurs in Graph API Explorer
The app name is Butterfly Miracle
App ID is 1186246188099014
This is a critical issue that cripples the game.
EDIT: The problem is still unresolved. We keep getting failed payments from the players. This is clearly a problem with Facebook servers that handle payment information. We need an answer from Facebook staff.
There are not any hidden ways for payment validating.
Facebook works with two alternative ways of validation:
when you user clicks on "Buy" button - FB.ui({"method": "pay" ... should be fired and your callback will receive data about current payment
in same time the Backend will receive request with payment data from Facebook Payment Service.
That error lies in how your Facebook app and server are configured.
You should check this:
If you are using Dynamic Pricing - check URL in Canvas Payments chapter and be sure your backend is sending correct response.
Check what Facebook knows about your product URL here: https://developers.facebook.com/tools/debug/ Sometimes facebook cache OLD product response - you can try to force cache clean by clicking Scrape again button. BTW: resolve all warnings here.
Canvas Payments chapter in FB app settings page should be configured correctly - try to click Test Callback Url - response should be OK
Try to make test payments and analyze client and backend logs. First of all catch client (js) response from FB.ui({"method": "pay"... and check it. Then analyze access_logs of the Backend (I don't know what are you using: it can be php-fpm, apache, nodejs, etc) - be sure the Backend correctly receives Payment Request from Facebook Payment Service and correctly process it - response status codes should be 200.
Just review again FB app_id and FB secret you typed in the Backend configuration. They should be equal to FB app settings.
If nothing helps - try to debug step-by-step requests that you are receiving from Facebook on test payments.

How to not exit a conversation after account linking?

When testing my app in the Simulator using a Speaker (e.g. Google Home), it always says "'MyApp' left the conversation" after successfully linking. Here is an example:
User signs up via the web site that I created for MyApp (i.e. they have an account associated with their Google email account).
User then tries to use MyApp using Google Home by saying "Talk to MyApp". They are greeted with this message:
Before you can use MyApp, you'll need to be signed in with them. To do
that, they'll need some of your info. If you want more details, say
"Tell me more. " So, can I share your name, email address, and profile
picture with them?
User says, "yes" and their account is linked.
Google Assistant responds with "Great, they found your account, and they've linked it to Google." That is followed by the line, "'MyApp' left the conversation."
Because MyApp left the conversation in step 4, the user has to say, "Talk to MyApp" once more in order to actually start using the app.
So my question is, is there a way that I can link the account and not have MyApp leave the conversation automatically? When my TokenUrl responds back to Google in order to link the account, it can just send token_type, access_token, and expires_in according to the documenation. There doesn't seem to be any other mechanism to tell it to not end the conversation but this seems like something that should be supported.
Any ideas? Thanks.
EDIT#1 to further explain setup
I have tried to create an Intent in the Dialogflow console and put "actions_intent_SIGN_IN" (from https://developers.google.com/actions/reference/rest/intents) and set it to be fulfilled by my webhook but this never fires.
In the Dialogflow console > Integration Settings, under "Explicit Invocation" I have "Welcome" (a.k.a. my Welcome intent that hands the WELCOME and GOOGLE ASSISTANT WELCOME Events. The Sign in required checkbox is checked next to this.
This is a problem with your Action, not with your OAuth server. It sounds like your Action isn't handling the Intent that reports the sign-in is a success or a request that contains the user's auth token.
Check your logs, including the logs for your webhook, to make sure there are no errors in that stage.