I'm working on a french google assistant app using actions-on-google with "action sdk" and a PHP fulfillment API.
Since yesterday, when I say "répéter" ("repeat" in french), the request inputs[0].rawInputs[0].query doesn't contain "répéter", but the previous raw query.
For example, if in the previous request, I said "foo", when I say "repeat", the request contains "foo" instead of "repeat".
In addition, yesterday in the simulator, I said "good bye", and the response was "ciao amigo" without any request to the fulfillment (I don't use "ciao amigo" in my app).
Do anyone have this kind of "problem" ? It's a huge problem for me because my app is statefull, and if I said "continue" to progress in my step-by-step app, when I say "repeat", instead of repeating, it send "continue" and go forward to the next step.
Frederic
Related
I have written a simple Java application based on Google example code:
https://github.com/actions-on-google/smart-home-nodejs
and watched a lot of movies, took Google codelabs, but I'm stuck.
My application responses to required actions (intents: action.devices.SYNC, action.devices.QUERY, action.devices.EXECUTE) - chcecked with Google validator, JSON validators. I have also implemeted simple OAuth authorization, created Google Actions projects for Smart Home.
After few hours of debugging I have got:
my test application is listed in Add devices menu,
I can select my application from list and connect it,
Google performs OAuth checking and everythings is OK (I see this in Nginx logs and my application logs),
then Google Actions sends action.devices.SYNC request to my server,
I responde with a test device:
{
"requestId":"14182994871341693427",
"payload":{
"agentUserId":"rysiek",
"devices":[
{
"id":"dev1",
"type":"action.devices.types.LIGHT",
"traits":[
"action.devices.traits.OnOff"
],
"name":{
"name":"główne"
},
"willReportState":false,
"roomHint":"pokój dzienny"
}
]
}
}
I have also tryied with willReportState: true,
then it (Google Assistant) asks me to assign devices to room which I'm doing.
After this nothing more is working.
I'm trying to say to my phone Turn on light główne (in polish "Włącz światło główne", "Włącz światło główne w pokoju dziennym" etc - tried a lot of sentences), but it just shows me web search results. No request is send to my server (action.devices.EXECUTE) - I have everything behind a Nginx proxy, and no requests are done to my server (not request is visible in logs).
I have no idea, what to do to make it work. Any help will be appreciated.
BTW1. Google Assistant is available in Poland from this year (16.01.2019) from few days and I'm wondering if this is my problem or Google problem? Is this even possible?
For example I'm saying Ok Google, synchronize my devices (in polish: Ok Google, synchronizuj moje urządzenia), and I get response in english:
"Sorry, I didn't get any response.".
But I see that there was a request for SYNC, and my server responed.
BTW2. I have connected Google Chromecast to Google Assistant, and it works without a problem - I'm mean I saying Turn on TV (in polish: Włącz telewizor) and TV is started like expected.
Checking the list of supported languages for smart home traits, Polish is currently not included. While it does seem like your SYNC response does work, you won't be able to interact with devices in Polish right now. While this will likely happen in the future, you'll only be able to use one of the languages mentioned above for the moment.
Once Polish support for smart home actions are supported, you shouldn't need to do any extra work for commands to succeed.
I was using the "location" quick reply explained on this page https://developers.facebook.com/docs/messenger-platform/send-messages/quick-replies to make it easy for someone to send my bot their location. The message looked like this:
recipient: {
id: recipientId
},
message: {
text: "We can find you with this button",
quick_replies: [
{
content_type:"location",
}
]
}
For some reason (and this only seems to happen for my logged in account as I've had others test and it works properly for them), when the Location feature is used to pick my location, the message received by my bot does not contain the "attachments" attribute that should contain the location details including coordinates. Even stranger, is that that it WAS working 2 weeks ago. I've restarted my bot, logged out and back in to FB, and deleted and restarted the conversation, both separately and all at once to start fresh, but nothing seems to help. I haven't updated any security settings on my account. The bot is currently not live so I can only have a limited amount of people test to see if anyone else experiences the problem. I know that it's a shot in the dark, but I'm hoping someone has run into this.
This is a known bug that appears to be affecting a small number of users when they send their location with the quick reply. You can track it here:
https://developers.facebook.com/bugs/160926314660178
I've been using Parse REST API for push notifications to targeted users (using "where"), it works well . I am now trying to add a custom data field so the devices can handle a tapped notification (i.e. redirect to specific object id etc). From what I have read, I should add the custom properties in the data json node, at the same level as alert, like the documented example below. But every time I make the request I get a 400 Bad Request. But, when I use the Parse.com web console with json: { "alert":"Notification Message","CustomObjectId":"12345" } ... it works - I see the CustomObjectId in the push notification (on the parse.com push tab).
Why is my REST API request failing, but the seemingly same request on the Parse.com website console is working? What am I missing?
My Parse REST Request:
{"where":{"UserId":"MyUserId"},"data":{"alert":"Notification Message","CustomObjectId":"12345"}}
Example from documentation (note this is using channels, not a where though) https://parse.com/docs/rest/guide/#push-notifications :
{
"channels": [
"Indians"
],
"data": {
"action": "com.example.UPDATE_STATUS",
"alert": "Ricky Vaughn was injured during the game last night!",
"name": "Vaughn",
"newsItem": "Man bites dog"
}
}
Thank you for the help,
Tim
For anyone else running into this, make sure you have "REST push enabled?" set to true in your Parse settings on the website. It's defaulted to false. Parse seems to allow 5 or so requests through per day with "REST push enabled" set to false. So after you wire this up, you may think you've successfully integrated with Parse, but then you start getting 400 Bad Request errors. This would lead many to think the issue is with their code possibly malforming requests or missing required parameters, not an authorization level issue like "REST push enabled" is not allowed.
I'm trying to get PayPal Here to issue a callback to a FileMaker Go database. It looks like the fmp:// protocol is being used correctly, but seems that there may be some kind of other problem with the callback URL.
Here's the URL that I'm using to call PayPal Here (note that I'm not stripping out the carriage returns from the base64-encoded invoice in my application; this is the actual URL my application sends to the OS, and the invoice appears to be fine in PPH):
paypalhere://takePayment?as=b64&accepted=card%2Cpaypal&returnUrl=fmp:%2F%2F$%2Ffmg_pphTest&step=choosePayment&invoice=eyJwYXltZW50VGVybXMiOiJEdWVPblJlY2VpcHQiLCJkaXNjb3VudFBlcmNlbnQiOjAsImN1cnJl
bmN5Q29kZSI6IlVTRCIsInBheWVyRW1haWwiOiJjcmlzdG9zK3Rlc3RAY3Jpc3Rvc2xjLmNvbSIs
Iml0ZW1MaXN0Ijp7DQogICAgIml0ZW0iOiBbDQogICAgICAgIHsibmFtZSI6IkRpbGl0aGl1bSBD
cnlzdGFsIiwiZGVzY3JpcHRpb24iOiJNYWtlcyBzaGlwIGdvIGZhc3QuIiwidW5pdFByaWNlIjow
LjEsInF1YW50aXR5IjoxMCwidGF4UmF0ZSI6MCwidGF4TmFtZSI6IlRheCJ9DQogICAgXQ0KfX0=
This is the URL that I want to fire (this is just for testing; later on, there will be additional parameters added on to send the payment status, etc., but I can't even get this basic version to work yet):
fmp://$/fmg_pphTest
However, the behavior I'm seeing looks like this is the URL PPH is actually sending:
fmp://
Testing is being done on an iPad 2 running iOS 8.3. Any thoughts/suggestions out there?
A kind soul on the FileMaker Community boards pointed me at a working example, https://github.com/Genecom/FileMakerSampleSolutions. After doing some comparisons, I discovered the issue is due to using base64-encoding of the JSON invoice object. When I changed it to use URL-encoding of the JSON invoice (like the Genecom example), I was able to get the callback URL to work successfully.
I opened an issue on the PayPal Here github project, please feel free to chime in there if you've also experienced this issue (or found countervailing evidence): https://github.com/paypal/here-sideloader-api-samples/issues/26
as the title says, I can no longer use friends locations with the graph api explorer any more(in https://developers.facebook.com). Even if I click all access token checkboxes,(trying to get me/friends?fields=locations.fields(place)) I still get error(
{
"error": "Request failed"
}). But me/locations?fields=place works, so it must be someting with "friends" that makes it to crash.
I was able use it 2 weeks ago, and I have not done any changes, it just suddenly stoped working. if I login with my test Account I can get all the parameters I request, but not on my primary account. Is there any one that has any idea what the problem can be? or why it occurred? I have done everything that I can think of, from using diffrent web browers, deleting all history, use diffrent computer. I have compared the settings for both my test account and my main account, both have the same settings.
I am sincerely sorry if i have misspelled anything.
It happens for me as well for any of the locations methods, but the location method with out the s works. I don't know if that data is usable for you.
me/friends?fields=location,hometown
I have figured out the reason to this problem. I has to do with requests from facebook's api, if i lower the Limit per request it works. Then to save the information I use offset.