mardi 30 mai 2023

Cannot use object of type GuzzleHttp\Psr7\Response as array in file

I am new in laravel, I am getting an error when I am trying to access elements of json response in this case being access_token

details of the error:

'Cannot use object of type GuzzleHttp\Psr7\Response as array in file /home/chefane/myProjects/paylesotho/app/Http/Controllers/Api/EletricityController.php on line 34'

below I created a function that returns data in json format, now the trick is how to access one of the elements. below is what I did:

 public function getToken(Request $request){

        $url = Config('api.url');

        $client = new \GuzzleHttp\Client();
        $headers = [
        'Content-Type' => 'application/x-www-form-urlencoded',
        ];
        
        $response = $client->request('POST', $url, [$headers,
        'form_params' => [
            'client_id' => Config('api.client_id'),
            'client_secret' => Config('api.client_secret'),
            'username' => Config('api.username'),
            'password' => Config('api.password'),
            'grant_type' => 'password',
            'scope' => 'read write openid'
            ]  
        ]);
      
        $data = json_decode($response->getBody(),true);
        $key_value =   $response['access_token'];
        return $key_value;
    }

below is what the function returns:

{
 "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJlUktVWG10TFhKMHBBNkxBS29aWko1ZlU0VDhCdmxKdERCb3pXanFFdnhjIn0.eyJleHAiOjE2ODU0ODUzOTMsImlhdCI6MTY4NTQ0OTM5MywianRpIjoiYWYxNTI5ZjAtNTdmYS00MjgyLWIzYTEtZWNlMzZlNjY4MzU2IiwiaXNzIjoiaHR0cHM6Ly9leHRhdXRoLmZpbmNsdWRlLmNvLnphL2F1dGgvcmVhbG1zL2ZpbmNsdWRlIiwic3ViIjoiZDNhNTNiZTgtZDgyOS00ZmU4LWI4ZmUtNGQzNDVkNzAzNWY4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiQjJCX0FQSSIsInNlc3Npb25fc3RhdGUiOiJlNjE3MjdjNi03ZjdhLTQ4NDItODg0ZC1lNTdhY2UyYjczMDEiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSByZWFkIHdyaXRlIiwicHJlZmVycmVkX3VzZXJuYW1lIjoicGF5bHNhcGkifQ.GSsBQxBA7ge0iXnLK3xvlkAXGPgT7DjfOGzB6JsNMJfjB9iqtE2tMHdKwOtIKOnCkZMeDQI1BJxoc-5voGNUeDVwNzJkP9DBnE3EbUZRs6_u4-flQdA2Ir0s3pZm3Cmn6q_iHWpBGEzPlQohbV26G3wEO6Y8qJ5oXz8A_t-IsoIWJzyVQvtTpu8Uqde43_XB9okzS0wtMaYLCUlNXl263eTkmP0fzOoXGfjUhuil_2ALxErCFSiBqCCfhsc8U5Om1Zpcz2cgrUkq_7ZEUF2VV4c7fZIjRsugx7n9zfQ-PqkQ7YznjI5mmbn-mnE7o0PGqw_p_goTvpf2pGZI5mdayg",
    "expires_in": 36000,
    "refresh_expires_in": 1800,
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwZDkwY2JkNy03MTY0LTQyY2MtODhlMi1kMjE1ZTc5YWU4ZWEifQ.eyJleHAiOjE2ODU0NTExOTMsImlhdCI6MTY4NTQ0OTM5MywianRpIjoiZTA0NzY3YjctZmUyMS00MTdlLWE2ZGQtZDdhNGQ0ZGMxODIwIiwiaXNzIjoiaHR0cHM6Ly9leHRhdXRoLmZpbmNsdWRlLmNvLnphL2F1dGgvcmVhbG1zL2ZpbmNsdWRlIiwiYXVkIjoiaHR0cHM6Ly9leHRhdXRoLmZpbmNsdWRlLmNvLnphL2F1dGgvcmVhbG1zL2ZpbmNsdWRlIiwic3ViIjoiZDNhNTNiZTgtZDgyOS00ZmU4LWI4ZmUtNGQzNDVkNzAzNWY4IiwidHlwIjoiUmVmcmVzaCIsImF6cCI6IkIyQl9BUEkiLCJzZXNzaW9uX3N0YXRlIjoiZTYxNzI3YzYtN2Y3YS00ODQyLTg4NGQtZTU3YWNlMmI3MzAxIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSByZWFkIHdyaXRlIn0.t-ye9K9pBtMGQidk6SvYCP7Aa_uDV9_9wGXyeFbbbz0",
    "token_type": "bearer",
}

I want the function to return only the access_token



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire