src/BotManager.php
public function validateAndSetWebhook(): self
    {
        $webhook = $this->params->getBotParam('webhook');
        if (empty($webhook['url'] ?? null) && $this->action->isAction(['set', 'reset'])) {
            throw new InvalidWebhookException('Invalid webhook');
        }

        if ($this->action->isAction(['unset', 'reset'])) {
            $this->handleOutput($this->telegram->deleteWebhook()->getDescription() . PHP_EOL);
            // When resetting the webhook, sleep for a bit to prevent too many requests.
            $this->action->isAction('reset') && sleep(1);
        }

        if ($this->action->isAction(['set', 'reset'])) {
            $webhook_params = array_filter([
                'certificate'     => $webhook['certificate'] ?? null,
                'max_connections' => $webhook['max_connections'] ?? null,
                'allowed_updates' => $webhook['allowed_updates'] ?? null,
            ], function ($v, $k) {
                if ($k === 'allowed_updates') {
                    // Special case for allowed_updates, which can be an empty array.
                    return \is_array($v);
                }
                return !empty($v);
            }, ARRAY_FILTER_USE_BOTH);

            $this->handleOutput(
                $this->telegram->setWebhook(
                    $webhook['url'] . '?a=handle&s=' . $this->params->getBotParam('secret'),
                    $webhook_params
                )->getDescription() . PHP_EOL
            );
        }

        return $this;
    }
public function validateAndSetWebhook(): self
    {
        $webhook = $this->params->getBotParam('webhook');
        if (empty($webhook['url'] ?? null) && $this->action->isAction(['set', 'reset'])) {
            throw new InvalidWebhookException('Invalid webhook');
        }

        if ($this->action->isAction(['unset', 'reset'])) {
            $this->handleOutput($this->telegram->deleteWebhook()->getDescription() . PHP_EOL);
            // When resetting the webhook, sleep for a bit to prevent too many requests.
            $this->action->isAction('reset') && sleep(1);
        }

        if ($this->action->isAction(['set', 'reset'])) {
            $webhook_params = array_filter([
                'certificate'     => $webhook['certificate'] ?? null,
                'max_connections' => $webhook['max_connections'] ?? null,
                'allowed_updates' => $webhook['allowed_updates'] ?? null,
            ], function ($v, $k) {
                if ($k === 'allowed_updates') {
                    // Special case for allowed_updates, which can be an empty array.
                    return \is_array($v);
                }
                return !empty($v);
            }, ARRAY_FILTER_USE_BOTH);

            $this->handleOutput(
                $this->telegram->setWebhook(
                    $webhook['url'] . '?a=handle&s=' . $this->params->getBotParam('secret'),
                    $webhook_params
                )->getDescription() . PHP_EOL
            );
        }

        return $this;
    }
public function validateAndSetWebhook ( ) : self { $ webhook = $ this -> params -> getBotParam ( 'webhook' ) ; if ( empty ( $ webhook [ 'url' ] ?? null ) && $ this -> action -> isAction ( [ 'set' , 'reset' ] ) ) { throw new InvalidWebhookException ( 'Invalid webhook' ) ; } if ( $ this -> action -> isAction ( [ 'unset' , 'reset' ] ) ) { $ this -> handleOutput ( $ this -> telegram -> deleteWebhook ( ) -> getDescription ( ) . PHP_EOL ) ; // When resetting the webhook, sleep for a bit to prevent too many requests. $ this -> action -> isAction ( 'reset' ) && sleep ( 1 ) ; } if ( $ this -> action -> isAction ( [ 'set' , 'reset' ] ) ) { $ webhook_params = array_filter ( [ 'certificate' => $ webhook [ 'certificate' ] ?? null , 'max_connections' => $ webhook [ 'max_connections' ] ?? null , 'allowed_updates' => $ webhook [ 'allowed_updates' ] ?? null , ] , function ( $ v , $ k ) { if ( $ k === 'allowed_updates' ) { // Special case for allowed_updates, which can be an empty array. return \ is_array ( $ v ) ; } return ! empty ( $ v ) ; } , ARRAY_FILTER_USE_BOTH ) ; $ this -> handleOutput ( $ this -> telegram -> setWebhook ( $ webhook [ 'url' ] . '?a=handle&s=' . $ this -> params -> getBotParam ( 'secret' ) , $ webhook_params ) -> getDescription ( ) . PHP_EOL ) ; } return $ this ; }
Make sure the webhook is valid and perform the requested webhook operation.

@return \TelegramBot\TelegramBotManager\BotManager
@throws \Longman\TelegramBot\Exception\TelegramException
@throws \TelegramBot\TelegramBotManager\Exception\InvalidWebhookException
Make sure the webhook is valid and perform the requested webhook operation .