'auth_api','new_token'=>'new_token','grant_type'=>'client_credentials','client_id'=>$clientId,'client_secret'=>$secret],JSON_THROW_ON_ERROR); $curl=curl_init($base.'/vapi/v2/'); curl_setopt_array($curl,[CURLOPT_POST=>true,CURLOPT_POSTFIELDS=>$payload,CURLOPT_HTTPHEADER=>['Content-Type: application/json','Accept: application/json'],CURLOPT_RETURNTRANSFER=>true,CURLOPT_CONNECTTIMEOUT=>5,CURLOPT_TIMEOUT=>20,CURLOPT_SSL_VERIFYPEER=>true,CURLOPT_SSL_VERIFYHOST=>2,CURLOPT_FOLLOWLOCATION=>false,CURLOPT_PROTOCOLS=>CURLPROTO_HTTPS]); $response=curl_exec($curl); $status=(int)curl_getinfo($curl,CURLINFO_HTTP_CODE); curl_close($curl); if($response===false || $status!==200) { throw new RuntimeException('No se pudo autenticar; revisa el entorno y las credenciales.'); } $data=json_decode($response,true,32,JSON_THROW_ON_ERROR); if(($data['success']??false)!==true || !is_string($data['access_token']??null) || $data['access_token']==='') { throw new RuntimeException('Respuesta de autenticación no válida.'); } return $data['access_token']; } // No realiza llamadas al incluirlo. Confirma con soporte la cabecera del token.