red_wasp/tg-clever-bot-api

PHP Telegram Clever Bot API

v1.0.2 2025-06-06 01:23 UTC

This package is not auto-updated.

Last update: 2025-09-26 17:55:40 UTC


README

Latest Version on Packagist Software License Total Downloads

An extended native php wrapper for Telegram Bot API without requirements. Supports all methods and types of responses.

Bots: An introduction for developers

>Bots are special Telegram accounts designed to handle messages automatically. Users can interact with bots by sending them command messages in private or group chats.

>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

Via Composer

$ composer require red_wasp/tg-clever-bot-api

Usage

See example DevAnswerBot (russian).

API Wrapper

Send message

$bot = new \TelegramCleverBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$bot->sendMessage($chatId, $messageText);

Send document

$bot = new \TelegramCleverBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$document = new \CURLFile('document.txt');

$bot->sendDocument($chatId, $document);

Send message with reply keyboard

$bot = new \TelegramCleverBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramCleverBot\Api\Types\ReplyKeyboardMarkup(array(array("one", "two", "three")), true); // true for one-time keyboard

$bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);

Send message with inline keyboard

$bot = new \TelegramCleverBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramCleverBot\Api\Types\Inline\InlineKeyboardMarkup(
            [
                [
                    ['text' => 'link', 'url' => 'https://core.telegram.org']
                ]
            ]
        );
        
$bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);

Send media group

$bot = new \TelegramCleverBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$media = new \TelegramCleverBot\Api\Types\InputMedia\ArrayOfInputMedia();
$media->addItem(new TelegramCleverBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727'));
$media->addItem(new TelegramCleverBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727'));
// Same for video
// $media->addItem(new TelegramCleverBot\Api\Types\InputMedia\InputMediaVideo('http://clips.vorwaerts-gmbh.de/VfE_html5.mp4'));
$bot->sendMediaGroup($chatId, $media);

Client

require_once "vendor/autoload.php";

try {
    $bot = new \TelegramCleverBot\Api\Client('YOUR_BOT_API_TOKEN');

    //Handle /ping command
    $bot->command('ping', function ($message) use ($bot) {
        $bot->sendMessage($message->getChat()->getId(), 'pong!');
    });
    
    //Handle text messages
    $bot->on(function (\TelegramCleverBot\Api\Types\Update $update) use ($bot) {
        $message = $update->getMessage();
        $id = $message->getChat()->getId();
        $bot->sendMessage($id, 'Your message: ' . $message->getText());
    }, function () {
        return true;
    });
    
    $bot->run();

} catch (\TelegramCleverBot\Api\Exception $e) {
    $e->getMessage();
}

Local Bot API Server

For using custom local bot API server

use TelegramCleverBot\Api\Client;
$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token, null, null, 'http://localhost:8081');

Third-party Http Client

use Symfony\Component\HttpClient\HttpClient;
use TelegramCleverBot\Api\BotApi;
use TelegramCleverBot\Api\Http\SymfonyHttpClient;
$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token, null, new SymfonyHttpClient(HttpClient::create()););

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email mail@igusev.ru instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.