TeleBot is a PHP library for telegram bots development. Rich Laravel support out of the box. Has an easy, clean, and extendable way to handle telegram Updates.
Documentation for the library can be found on the website.
Work easily with multiple bots using BotManager
:
$manager->getMe(); // Fired by default bot specified in BotManager
$manager->bot('bot2')->getMe(); // Fired by `bot2` specified in BotManager
// Functional handler
$handler = function(TeleBot $bot, Update $update, $next) {
if ($update->message->text === '/start') {
return $bot->sendMessage([
'chat_id' => $update->chat()->id,
'text' => 'Hello, World!'
]);
}
return $next();
};
// Object oriented handler
class YourUpdateHandler extends CommandHandler
{
protected static $aliases = ['/start'];
protected static $description = 'Your description';
public function handle()
{
return $this->sendMessage([
'text' => 'Hello, World!'
]);
}
}
Library provides a Facade, artisan commands and notification channel to simplify the development process of your bot, if you are using Laravel:
TeleBot::getMe();
TeleBot::bot('bot2')->getMe();
After you insert your bot token, to create a webhook you need only to fire the following command:
$ php artisan telebot:webhook --setup
Route for handling updates is generated automatically for your APP_URL
If you are not using webhook, or want to use bot in local or test environment, you may start long polling by only firyng this command:
$ php artisan telebot:polling
The following command will automatically setup autocompletion for all registered bot commands on Telegram servers:
$ php artisan telebot:commands --setup
<?php
namespace App\Notifications;
use Illuminate\Notifications\Notification;
use WeStacks\TeleBot\Laravel\TelegramNotification;
class TelegramNotification extends Notification
{
public function via($notifiable)
{
return ['telegram'];
}
public function toTelegram($notifiable)
{
return (new TelegramNotification)->bot('bot')
->sendMessage([
'chat_id' => $notifiable->telegram_chat_id,
'text' => 'Hello, from Laravel\'s notifications!'
])
->sendMessage([
'chat_id' => $notifiable->telegram_chat_id,
'text' => 'Second message'
]);
}
}
You may log your application errors by sending them to some Telegram chat. Simply add new log driver to a config/logging.php
:
'telegram' => [
'driver' => 'custom',
'via' => \WeStacks\TeleBot\Laravel\Log\TelegramLogger::class,
'level' => 'debug',
'bot' => 'bot',
'chat_id' => env('TELEGRAM_LOG_CHAT_ID') // Any chat where bot can write messages.
]
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.