enableGrantType( new ClientCredentialsGrant(), new \DateInterval('PT' . $config['access_token_ttl'] . 'S') ); // Procesar petición try { $response = $server->respondToAccessTokenRequest( \Slim\Psr7\Factory\ServerRequestFactory::createFromGlobals(), new \Slim\Psr7\Response() ); // Enviar respuesta echo $response->getBody(); } catch (OAuthServerException $e) { // Errores de OAuth http_response_code($e->getHttpStatusCode()); echo json_encode([ 'error' => $e->getErrorType(), 'message' => $e->getMessage() ]); } catch (\Exception $e) { // Errores del servidor http_response_code(500); echo json_encode([ 'error' => 'server_error', 'message' => $e->getMessage(), // MOSTRAR EL MENSAJE REAL 'trace' => $e->getTraceAsString() // Opcional: útil para depurar ]); } } } ?>