I'm trying to execute a simple graphql query with parameters, but I can't get it to work. Any idea what I'm missing? A query without parameters works fine.
Below the code i use and error I receive. P.s I'm using Guzzle in php
I tried below code
<?php
$Endpoint = 'https://gql.waveapps.com/graphql/public';
$query = <<<GRAPHQL
query ($businessId : ID!) {
business(id : $businessId) {
name
phone
}
}
GRAPHQL;
$variables = array('id' => $businessId);
$request = $client->request('POST', $Endpoint, [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer GCXTMB5wFNlO3shJ6juEu3toRO7Hu'
],
'json' => [
'query' => $query,
'variables' => json_encode($variables)
]
]);
$json = $request->getBody()->getContents();
$body = json_decode($json);
$data = $body->data;
echo "<pre>".print_r($data,true)."</pre>";
Expecting
{
"data": {
"business": {
"name": "Smith Consulting",
"phone": null
}
}
}
What im receiving
Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error:
POST https://gql.waveapps.com/graphql/publicresulted in a400 Bad Requestresponse: {"errors":[{"extensions":{"code":"GRAPHQL_PARSE_FAILED","id":"ded9ed2a-a913-42cb-95c9-cc358fc337eb"},"message":"Syntax E (truncated...) in /app/minishop/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113 Stack trace: #0 /app/minishop/vendor/guzzlehttp/guzzle/src/Middleware.php(69): GuzzleHttp\Exception\RequestException::create() #1 /app/minishop/vendor/guzzlehttp/promises/src/Promise.php(204): GuzzleHttp\Middleware::GuzzleHttp{closure}() #2 /app/minishop/vendor/guzzlehttp/promises/src/Promise.php(153): GuzzleHttp\Promise\Promise::callHandler() #3 /app/minishop/vendor/guzzlehttp/promises/src/TaskQueue.php(48): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise{closure}() #4 /app/minishop/vendor/guzzlehttp/promises/src/Promise.php(248): GuzzleHttp\Promise\TaskQueue->run() #5 /app/minishop/vendor/guzzlehttp/promises/src/Promise.php(224): GuzzleHttp\Prom in /app/minishop/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113