telegram-bot-sdk (Не понимаю принцип работы пакета на классах)

Рейтинг: 0Ответов: 1Опубликовано: 27.02.2023

Разъясните пожалуйста принцип работы библиотеки irazasyed/telegram-bot-sdk (на чистом php, без Laravel, он мне не нужен) с применением классов. Читал документацию и либо я что-то не так делаю, либо я не понимаю до конца, как должен работать сам процесс ее использования.

В моем понимании, даже на примере встроенного класса Help работать весь процесс должен так: Ставим вебхук на свою страницу, допустим hook.php В ней прописываем следующее:

require 'vendor/autoload.php';
use Telegram\Bot\Api;
$telegram = new Api('api');
$command = new Telegram\Bot\Commands\HelpCommand();
$telegram->addCommand($command);
$telegram->commandsHandler(true);

И дальше класс автоматом подтягивается и при вводе в телеграме /help я должен получить результат метода handle() внутри класса HelpCommand.

Но по итогу я не получаю ничего. Если же получать данные через $telegram->getWebhookUpdates(); и отправлять какой-либо ответ, то все работает.

Пытался найти примеры кода, но нашел только списки реализованных проектов, либо работу через getWebhookUpdates()

Что я делаю не так, разъясните пожалуйста или дайте пример кода хука, чтобы я сам посмотрел принцип работы и разобрался.

Ответы

▲ 0

Пардон, все оказалось немного сложней. В /vendor/irazasyed/telegram-bot-sdk/src/Commands/Command.php есть public function __call() (в самом конце)

Так вот, там используется studly_case(), который работает в Laravel, но этого метода нет в php. Удалите его и все будет работать.