1. Go to this page and download the library: Download tourze/telegram-bot-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use TelegramBotBundle\Handler\CommandHandlerInterface;
use TelegramBotBundle\Entity\TelegramBot;
use TelegramBotBundle\Entity\Embeddable\TelegramMessage;
use TelegramBotBundle\Service\TelegramBotService;
class YourCommandHandler implements CommandHandlerInterface
{
public function __construct(
private readonly TelegramBotService $botService,
) {
}
public function handle(TelegramBot $bot, string $command, array $args, TelegramMessage $message): void
{
// Handle your command logic here
$response = "Your reply message";
$this->botService->sendMessage($bot, (string) $message->getChat()?->getId(), $response);
}
}
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use TelegramBotBundle\Event\TelegramUpdateEvent;
class YourSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
TelegramUpdateEvent::class => ['onTelegramUpdate', -10], // lower priority than auto-reply
];
}
public function onTelegramUpdate(TelegramUpdateEvent $event): void
{
$update = $event->getUpdate();
$bot = $event->getBot();
// Handle message...
}
}
use TelegramBotBundle\Service\TelegramBotService;
use TelegramBotBundle\Repository\TelegramBotRepository;
class YourService
{
public function __construct(
private readonly TelegramBotService $botService,
private readonly TelegramBotRepository $botRepository,
) {
}
public function sendMessage(string $botId, string $chatId, string $message): void
{
$bot = $this->botRepository->find($botId);
if ($bot) {
$this->botService->sendMessage($bot, $chatId, $message);
}
}
}
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use TelegramBotBundle\Event\TelegramUpdateEvent;
use TelegramBotBundle\Event\TelegramCommandEvent;
class CustomBotSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
TelegramUpdateEvent::class => ['onTelegramUpdate', -10],
TelegramCommandEvent::class => ['onTelegramCommand', 0],
];
}
public function onTelegramUpdate(TelegramUpdateEvent $event): void
{
$update = $event->getUpdate();
$bot = $event->getBot();
// Handle all types of updates (messages, edits, etc.)
if ($messageText = $event->getMessageText()) {
// Process text messages
}
}
public function onTelegramCommand(TelegramCommandEvent $event): void
{
$command = $event->getCommand();
$args = $event->getArgs();
// Handle specific command executions
}
}
use TelegramBotBundle\Handler\CommandHandlerInterface;
use TelegramBotBundle\Entity\TelegramBot;
use TelegramBotBundle\Entity\Embeddable\TelegramMessage;
use TelegramBotBundle\Service\TelegramBotService;
class WeatherCommandHandler implements CommandHandlerInterface
{
public function __construct(
private readonly TelegramBotService $botService,
) {
}
public function handle(TelegramBot $bot, string $command, array $args, TelegramMessage $message): void
{
$location = $args[0] ?? 'Unknown';
$chatId = (string) $message->getChat()?->getId();
$weatherInfo = $this->fetchWeatherData($location);
$this->botService->sendMessage($bot, $chatId, $weatherInfo);
}
private function fetchWeatherData(string $location): string
{
// Implement your weather API integration
return "Weather in {$location}: Sunny, 24°C";
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.