'Simple Telegram Bot but it doesn't respond to commands (PHP)

I'm fairly new to all of this, but I have created a simple telegram bot to test their functionality. I have set the webhook and I'm using ngrok for the "host". However when I type a command the bot just doesn't do anything.
Does anyone know how to fix this?

Here is the index.php file:

<?php
    require('token.php');
    require('config.php');

    try{
        $ngrokUrl = "ngrok url";
        
        $bot = new TelegramBot($token);
        $jH = new jsonHandler($token);

        var_dump($bot->setWebhook($ngrokUrl));

        $webhookJson = $jH->getWebhookJson();
        $chatId = $jH->getChatId($webhookJson);

        $msg = $jH->getText($webhookJson) !== "" ? $jH->getText($webhookJson) : "";

        switch($msg){
            default:{
                if ($msg[0] == '/')
                    $bot->sendMessage($chatId, 'The command does not exist');
                break;
            }

            case '/test':{
                $msg = 'test test';
                $bot->sendMessage($chatId, $msg);
                break;
            }

            case '/help':{
                $msg = 'Help!';
                $bot->sendMessage($chatId, $msg);
                break;
            }
        }

    }catch(ErrorException $e){
        echo $e->getMessage();
    }
?> 

And the config.php file:

<?php
    function fetchApi($url){
        $req = curl_init($url);

        $resp = curl_exec($req);

        if($resp == false){
            $error = curl_error($req);
            curl_close($req);
            throw new ErrorException($error);
        }
        else{
            curl_close($req);
            //return $resp;
        }
    }

    class TelegramBot{
        protected $tUrl;

        function __construct($token){
            $this->tUrl = "https://api.telegram.org/bot".$token;
        }

        function setUrl($method){
            return $this->tUrl."/".$method;
        }

        function sendMessage($chatId, $msg){
            $data = [
                'chat_id' => $chatId, 
                '&text' => $msg
            ];

            $url = $this->setUrl("sendMessage?".http_build_query($data));
            fetchApi($url);

            file_get_contents($url);
        }

    class jsonHandler extends TelegramBot{
        function getWebhookJson(){
            $json = file_get_contents("php://input");
            return json_decode($json, true);
        }

        function getChatId($jsonDecoded){
            return $jsonDecoded["message"]["chat"]["id"];
        }

        function getText($jsonDecoded){
            return $jsonDecoded["message"]["text"];
        }
    }
?>


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source