slavasamsonow / telegram-bot-api
PHP Telegram Bot API library
v1.7.0
2025-08-08 13:57 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- squizlabs/php_codesniffer: ^3.11
- symfony/var-dumper: ^6.4
README
Extended native php wrapper for Telegram Bot API without requirements.
Bots: An introduction for developers
You control your bots using HTTPS requests to bot API.
The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create and set up a bot, please consult Introduction to Bots and Bot FAQ.
Installation
Requirements
- PHP 8.1 and higher
- Telegram Bot Token - Talk to @BotFather and generate one.
Installation
Via Composer
$ composer require slavasamsonow/telegram-bot-api
Usage
The Basics
Before Initialize SDK
require __DIR__.'/vendor/autoload.php'; use \Slavasamsonow\TelegramBotApi\TelegramBotApi; $bot = new TelegramBotApi($botToken); $botInfo = $bot->getMe();
Send message
// Create bot $bot = new TelegramBotApi($botToken); // Create send message request $request = new \Slavasamsonow\TelegramBotApi\RequestObjects\SendRequests\SendMessageRequest($chatId, $text); // Send request $bot->sendMessage($request);
Send photo with InputFile
// Create bot $bot = new TelegramBotApi($botToken); // Create Input file $file = file_get_contents($url); $inputFile = new \Slavasamsonow\TelegramBotApi\InputFile($file); // Create Send photo request $request = new \Slavasamsonow\TelegramBotApi\RequestObjects\SendRequests\SendPhotoRequest($id, $inputFile) // Send request $bot->sendPhoto($chatId, $document);
Send message with inline keyboard
// Create bot $bot = new TelegramBotApi($botToken); // Create inline button $inlineButton = \Slavasamsonow\TelegramBotApi\RequestObjects\Keyboard\Inline\InlineKeyboardButton::createUrlButton($buttonName, $url); // Create inline keyboard row $inlineKeyboardRow = new \Slavasamsonow\TelegramBotApi\RequestObjects\Keyboard\Inline\InlineKeyboardRow([$inlineButton]); // create inline keyboard $inlineKeyboard = new \Slavasamsonow\TelegramBotApi\RequestObjects\Keyboard\Inline\InlineKeyboard([$inlineKeyboardRow]); // Create reply markup $replyMarkup = new \Slavasamsonow\TelegramBotApi\RequestObjects\Keyboard\Inline\InlineKeyboardMarkup($inlineKeyboard); // Create send message request $request = new \Slavasamsonow\TelegramBotApi\RequestObjects\SendRequests\SendMessageRequest($chatId, $text, replyMarkup: $replyMarkup); // Send request $bot->sendMessage($request);
Send media group
// Create bot $bot = new TelegramBotApi($botToken); // Create Media $media = new \Slavasamsonow\TelegramBotApi\RequestObjects\Media\Media(); // Add 1 photo $media->addPhoto( new \Slavasamsonow\TelegramBotApi\RequestObjects\Media\InputMediaPhoto( $url1, $caption ) ); // Add 2 photo $media->addPhoto( new \Slavasamsonow\TelegramBotApi\RequestObjects\Media\InputMediaPhoto( $url2 ) ); // Create send media group request $request = new \Slavasamsonow\TelegramBotApi\RequestObjects\SendRequests\SendMediaGroupRequest($id, $media); // send request $res = $bot->sendMediaGroup($request);
License
The MIT License (MIT). Please see License File for more information.