I have the following JSON response from an API:
{"error":null,"response":{"items":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6MCwiSWRVdGVudGUiOjEzLCJJZFByb2ZpbG8iOjEsIklkQ29sbGFib3JhdG9yZSI6LTEsIklkRmlsaWFsZSI6LTEsIkNsb3VkSWQiOiI4MTI0MSIsIlVzZXJJZCI6bnVsbCwiV2ViVG9rZW4iOm51bGwsIkFzc29jaWF0ZXNDdXN0b21lck1hbnVhbGx5IjpmYWxzZSwiVG9rZW5DcmVhdGlvbkRhdGUiOiIyMDIyLTExLTA4VDEyOjI3OjE5LjQ5NDA5NDUrMDE6MDAifQ.prRo4mTA3a7M65UG_aSRQYCxsqwbwDYmUbv3Tbz4cYY","message":null}}
I need to get the items
/token value.
Code:
add_filter( 'gform_field_value_token', 'scrivi_token' );
function scrivi_token ( $value ) {
$url = 'https://leads-cert.creditopratico.it/api/login';
#Assumption: The params below have already been verified.
$topup_data = array("username" => "**********",
"password" => "**********",
"cloudId" => "**********");
#JSON encode the params
$topup_str = json_encode($topup_data);
#Curl init
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: '.strlen($topup_str)
)
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $topup_str);
$result = curl_exec($ch);
$array = json_decode($result, true);
print_r($array); // ARRAY
return $token; //pass the value to the field that interests me
The output is:
Array ( [error] => [response] => Array ( [items] => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6MCwiSWRVdGVudGUiOjEzLCJJZFByb2ZpbG8iOjEsIklkQ29sbGFib3JhdG9yZSI6LTEsIklkRmlsaWFsZSI6LTEsIkNsb3VkSWQiOiI4MTI0MSIsIlVzZXJJZCI6bnVsbCwiV2ViVG9rZW4iOm51bGwsIkFzc29jaWF0ZXNDdXN0b21lck1hbnVhbGx5IjpmYWxzZSwiVG9rZW5DcmVhdGlvbkRhdGUiOiIyMDIyLTExLTA4VDE2OjUwOjQyLjA2Mjc1MTcrMDE6MDAifQ.ErluSsrhMCBml3M2P5Pto14zF0zl4sZscFielmaF2Lc [message] => ) )
$token = $array['response']['items'];
print_r($token); // for see the result
Can you help me please?