Issue with Guzzle Graphql request using parameters

27 Views Asked by At

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/public resulted in a 400 Bad Request response: {"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

0

There are 0 best solutions below