Riot API server callback - php

I am making website to organize tournaments in League of Legends game. I have problem with receiving data about completed games from automatic callback.
The steps which we take:
We register provider with tournament-v3:
http://example.pl/riotcallbackinfo
on server EUNE
and recive id=10xx
We register tournament, and create tournament code successfully.
tournamentId=256xxx
code: EUNE043bb-xxx4d390-xxxx-4f2c-xxxx-4dc266xxxxxx
3. We play game with generated tournament code and completed it successfully.
After the match we should receive some data to our url:
example.pl/riotcallbackinfo
but nothing is sending. We have log system to check every time someone call this url and there is no information about calling it by riot api.
We can get data about this completed game using match-api-v3 and it is looked, like game is finished successfully.
We tried to register also http://example.pl:80/riotcallbackinfo url, but with no success.
To backed we use Laravel PHP 5.4. The documentation says:
"The following ports are forwarded to your Homestead environment:
HTTP: 8000 → Forwards To 80"
Lobby events for this game are:
{
"eventList": [
{
"timestamp": "1498128797694",
"summonerId": "23509512",
"eventType": "PracticeGameCreatedEvent"
},
{
"timestamp": "1498128833935",
"eventType": "GameAllocationStartedEvent"
},
{
"timestamp": "1498128803131",
"eventType": "ChampSelectStartedEvent"
},
{
"timestamp": "1498128798414",
"summonerId": "34477543",
"eventType": "PlayerJoinedGameEvent"
},
{
"timestamp": "1498128834399",
"eventType": "GameAllocatedToLsmEvent"
}
]
}
We have tested our url method with Postman and sending your sample JSON response and everything worked fine. Even if our method is broke we should see something in log. Our log is set at the beginning of the method.
Could you suggest us, were could have problem? Why couldn’t we get data from automatic callback? There is problem with our URL or is something what we understand wrong?
Thank you in advance for your help

Related

Can't update SendGrid Single Send associated lists using the API

I'm using the latest SendGrid PHP API. I can successfully create a Single Send using the API, and easily associate lists the Single Send should go to when it's eventually scheduled (by list ID). When I use the API to then update that Single Send to use different lists, the list changes are not reflected in the SendGrid dashboard - only name changes, etc. The API request is successful in code and when using Postman. SendGrid's API response to the update reflects my changes in what they return back to me. The Single Send is also in "draft mode" when I attempt this. The associated lists in the SendGrid dashboard never change.
API call to Single Send Update Endpoint (PATCH):
https://api.sendgrid.com/v3/marketing/singlesends/3ee0cd4e-62f7-21eb-8ee8-3a2e1ebc21ed
with param:
{
"name": "TESTER 2",
"send_to": {
"list_ids": [
"52ca8ad3f-9db1-4c2x-1f01-85beecbx94c2"
]
}
}
And SendGrid returns (202, successful response code):
{
"id": "3ee0cd4e-62f7-21eb-8ee8-3a2e1ebc21ed",
"name": "TESTER 2",
"status": "draft",
"categories": [],
"send_at": "2021-02-01T19:06:00Z",
"send_to": {
"list_ids": [
"52ca8ad3f-9db1-4c2x-1f01-85beecbx94c2"
],
"segment_ids": [],
"all": false
},
"updated_at": "2021-01-31T22:52:58Z",
"created_at": "2021-01-31T19:07:20Z",
"email_config": {
"subject": "Hello World",
"html_content": "Hello World!",
"plain_content": "Hello World!",
"generate_plain_content": false,
"editor": "code",
"suppression_group_id": null,
"custom_unsubscribe_url": "https://www.example.org/unsubscribe",
"sender_id": 1212111,
"ip_pool": null
}
}
But, the associated contact lists are not updated. Anyone have any suggestions? My only workaround is to simply delete the single send every time and just re-create it. I'm storing their ID's locally so this adds a bit more work on my end, but I'm not sure what else to do.
To anyone struggling with this, hopefully this will save you some time. The problem wasn't with the API at all, but with the SendGrid dashboard. You need to do a hard reload on the Single Send dashboard page to see your changes. The SendGrid dashboard is a SPA. Ugh.

Watson Assistant CURL API: How to send follow up message?

I'm trying out IBM Watson Assistant. Ultimate goal is to integrate it with my custom PHP backend, via it's Watson Assistant's cURL API Endpoints (because there's no complete PHP SDK yet).
Let me tell what I did so far:
Imported a sample Workspace from a Training Data Set.
Then I tried this, and it works fine.
Then I tried that exact same thing via cURL API, I got a response like this: (The json output format beautified)
.
{
"intents": [
{
"intent": "locate_amenity",
"confidence": 0.999901008605957
}
],
"entities": [
{
"entity": "amenity",
"location": [
7,
10
],
"value": "gas",
"confidence": 1
}
],
"input": {
"text": "i need some gas"
},
"output": {
"text": [
"Hi. It looks like a nice drive today. What would you like me to do? "
],
"nodes_visited": [
"Start And Initialize Context"
],
"log_messages": []
},
"context": {
"conversation_id": "153c18ee-1015-4b6a-ae04-789e29bf4a05",
"system": {
"dialog_stack": [
{
"dialog_node": "root"
}
],
"dialog_turn_counter": 1,
"dialog_request_counter": 1,
"_node_output_map": {
"Start And Initialize Context": [
0,
0
]
},
"branch_exited": true,
"branch_exited_reason": "completed"
},
"AConoff": "off",
"lightonoff": "off",
"musiconoff": "off",
"appl_action": "",
"heateronoff": "off",
"volumeonoff": "off",
"wipersonoff": "off",
"default_counter": 0,
"previous_cuisine": "",
"previous_restaurant_date": "",
"previous_restaurant_time": ""
}
}
Now please let me understand 2 things here.
Question (1)
At this point, I was expecting the API to return with a message:
"There are gas stations nearby. Which one would you like to drive to?"
But why it doesn't. If then, how do I achieve it?
Question (2)
How do I properly reply back with "Go to number 5." so that the API understands I'm referring to the previous Call? (aka) How to I continue the dialog flow? (Note: I tried sending back with the previous "contexts", "entities", "intents", but it is somehow still recognised as a new message.)
Please share me an example of cURL call to follow up the previous message.
Since there's no complete PHP SDK yet, it is very hard for me to understand just by the cURL API calls. API Documentation does not explain to that details too. Please help.
Thank you all.
The message API for Watson Assistant is stateless. Everything that is needed to process a request is submitted as parameters. This includes the message itself, but also the context. The context holds the state about where in the dialog tree the conversation is. It could also hold information that is transferred from WA to the app, e.g., to process a client-side action. Or from the app to WA, e.g., with a record from a database.
Coming to your request:
Your dialog probably sends out that reponse when a new conversation is started. I see it is the same as in the "Try it out".
You would need to send a "Hi" or empty message first, wait for the reponse from WA, then send your "I need gas" together with the context data you received from WA. WHen you look into the details, you see the dialog stack, turn counter and more. The conversation ID is the identifier for that current chat.
With the above, WA's next response should be exactly like in the "Try it out" because you went down in the dialog tree.

Getting wrong mutual friends count from facebook

I am trying to get mutual friends from facebook but it is giving me wrong result. The total number of mutual friends count which I am getting is right but when the data is users is not coming
Request
https://graph.facebook.com/v2.8/1744744292507346?fields=context.fields(mutual_friends{name,picture.type(large)})&access_token=access_token
Response
{
"context": {
"mutual_friends": {
"data": [
{
"name": "Gaurav Varshney",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15541198_1872071033026134_3669335060573505093_n.jpg?oh=d4a95ee6cdb8d401be06e8f10fbf6d50&oe=59B0C911"
}
},
"id": "1919297771636793"
}
],
"paging": {
"cursors": {
"before": "MTkxOTI5Nzc3MTYzNjc5MwZDZD",
"after": "MTkxOTI5Nzc3MTYzNjc5MwZDZD"
}
},
"summary": {
"total_count": 2
}
},
"id": "dXNlcl9jb250ZAXh0OgGQHYKW1ALzRNZBAkUhMk2uDFtLZBBkzlasCZAq98zEqnPZBjqy7beHZBJZCVZB7STTw6yMnKC0w4qDA05ZBOGQ3RdRoPjfi1cbAmnChBQ1xLYpJuuKrIEZD"
},
"id": "1744744292507346"
}
I am only getting 1 friend since total_count is showing 2 .Can anyone tell me where I am doing wrong?And how can I use paging ??
When try to hit all_mutual_friends
https://graph.facebook.com/v2.8/1744744292507346?fields=context.fields(all_mutual_friends{name,picture.type(large)})&access_token=access_token
{
"error": {
"message": "(#10) To use all_mutual_friends on behalf of people who are not admins, developers and testers of your app, your use of this endpoint must be reviewed and approved by Facebook. To submit this feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review",
"type": "OAuthException",
"code": 10,
"fbtrace_id": "HF3ZO8U3eLW"
}
}
There is a lack of documentation about this feature and I had to dig about it. Mainly regarding on how to request that with Graph API.
That's how I'm doing and it is working, with some flaws that I will explain later:
Let's say we have here UserA and UserB. You need to collect the context-id of each of the user and save it on the server side because it must be used later on.
So, UserA connects and want to request mutual friends with UserB which is already connected. What you will need to do is:
UserA FB Graph request using this:
/'{{UserB context-id}}/all_mutual_friends?limit=5000', 'get'
also sending UserA fbaccesstoken
I use the limit 5000 to avoid pagination on the data results.
Now, the flaws:
The all_mutual_friends is giving me some headaches. I may be completely wrong, of course, but I debugged it for days and it seems there are some issues with Facebook when the feature is still in development mode and not public/authorized by FB. Don't know, I need to ask for permission to see that in production.
On my application I realised there are sometimes some mutual_friends are not actually listed and it is not a fault of the script, but probably some users configuration that avoid using this or some facebook problem. IDN.
Anyways, that's the way you should request mutual friends.
Hope it helps.

Google Datastore returning "503 Backend Error"

I'm sending the following request to the Google Datastore API, via the PHP client, and i'm getting a "503 Backend Error" without any other information. I tried the online client available here, but the error is the same. Maybe something is malformed on my request? The documentation wasn't very helpful:
{
"mode": "NON_TRANSACTIONAL",
"mutation": {
"upsert": [
{
"key": {
"path": [
{
"kind": "Log"
}
]
},
"properties": {
"event": {
"indexed": false,
"stringValue": "new_order"
},
"dataType": {
"indexed": false,
"stringValue": "test"
}
}
}
]
}
}
Any ideas of what might be causing this behavior? Or how to enable more detailed feedback from the API?
When you perform POST https://www.googleapis.com/datastore/<APIversion>/datasets/<datasetId>/commit, make sure that if you created your project using the old Admin Console that your datasetId in the URL is the App Engine application ID, and that if you created your project using the Developer Console, that your datasetId is the project ID you see in the Developer Console.
Also, if you created your project through the new Developer Console, try toggling the API on and off.
Finally, check that you are completing the OAuth flow properly, all your client ID info makes sense, and that you are setting up the right scopes, etc...

Google Wallet 500 Server Error

I got my subscriptions all working in the sandbox about 5 days ago, but a day after I finished testing it I started getting 500 server errors every time I try to test my subscriptions in sandbox and in production. I have not changed the code what so ever and my JWTs still decode perfectly.
Any ideas why this is happening? I've contacted Google many times but most of the people I get a hold of clearly have no idea what they are talking about...
Has anyone ever run into this issue before? Any input is appreciated!
The failing red line is the google sandbox code:
<script src="https://sandbox.google.com/checkout/inapp/lib/buy.js"></script>
POST:
[,"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIxMTQ4MTc0NTgxNTIzNzcxMTY5OSIsImF1ZCI6Ikdvb2dsZSIsInR5cCI6Imdvb2dsZVwvcGF5bWVudHNcL2luYXBwXC9zdWJzY3JpcHRpb25cL3YxIiwiZXhwIjoxNDAyMjQ3NTMyLCJpYXQiOjE0MDIyNDM5MzIsInJlcXVlc3QiOnsibmFtZSI6IkF1dG9tYXRvbiBTY2hlZHVsZXIgU3Vic2NyaXB0aW9uIChQUk8pIiwiZGVzY3JpcHRpb24iOiJNb250aGx5IHN1YnNjcmlwdGlvbiB3aXRoIHVwIHRvIDUwIHVzZXJzLiIsImN1cnJlbmN5Q29kZSI6IlVTRCIsInNlbGxlckRhdGEiOiJ1c2VyX2lkOixzdWJzY3JpcHRpb25faWQ6MiIsImluaXRpYWxQYXltZW50Ijp7InBheW1lbnRUeXBlIjoiZnJlZV90cmlhbCJ9LCJyZWN1cnJlbmNlIjp7InByaWNlIjoiNjAuMDAiLCJjdXJyZW5jeUNvZGUiOiJVU0QiLCJmcmVxdWVuY3kiOiJtb250aGx5In19fQ.sju0xaOf9u3ufxow0XxWF4j-QUY0XgtF0A0d8g1rRiQ",,,1]
Response:
[,,4,"VTTMKJ"]
Based on above, this is the request object in your JWT payload:
"request": {
"name": "Automaton Scheduler Subscription (PRO)",
"description": "Monthly subscription with up to 50 users.",
"currencyCode": "USD",
"sellerData": "user_id:,subscription_id:2",
"initialPayment": {
"paymentType": "free_trial"
},
"recurrence": {
"price": "60.00",
"currencyCode": "USD",
"frequency": "monthly"
}
}
Note the docs regarding the structure and required fields in a subscription request. So:
There is no currencyCode in a subscription request
The above initialPayment object is missing required fields:
price
currencyCode
Hth....

Categories