This package requires PHP 8.0+
First, install Laragram package, and make sure that the database connection settings are correct!
composer require milly/laragram
Then run these commands to publish assets and config
php artisan vendor:publish --provider="Milly\Laragram\LaragramServiceProvider"
Add your telegram bot token to .env
TELEGRAM_BOT_TOKEN=123456789:XXXXXXXXXXXXXXXXXXXXXXXXXXX
Run migration to be able to use FSM-Routing
php artisan migrate
If you want to get updates, set webhook to your adress (like domain.com/api/bot) where you handle updates
And here we go, you can start your bot now
-
Local development:
php artisan laragram:start
-
Methods:
use Milly\Laragram\Laragram; Laragram::sendMessage( 123456789, // chat_id null, // message thread id "Hello world", // message text );
-
Objects:
use Milly\Laragram\Types\Message; // with variable $message = new Message(); $text = $message->text; // inside the function function getText(Message $message) { $text = $message->text; }
-
FSM Routing:
// routes/api.php use Milly\Laragram\FSM\FSM; use Milly\Laragram\Laragram; Route::post('/bot', function () { FSM::route('state_1', [SomeClass::class, 'someMethod']); FSM::route('state_2', function (Message $message) { Laragram::sendMessage( $message->chat->id, null, "Inside anonymous function" ); }); }
- Support for anonymous functions inside route definition
// routes/laragram.php
use App\Http\Controllers\LaragramController;
use Milly\Laragram\FSM\FSM;
use \Milly\Laragram\Types\Message;
use \Milly\Laragram\Laragram;
FSM::route('', function (Message $message) {
Laragram::sendMessage([
$message->chat->id,
null,
"Inside anonymous function"
);
}, [
(new \Milly\Laragram\Types\Update())->message
]);
- State management now supports regexp as status
// routes/laragram.php
//...
FSM::route('state_+', [SomeClass::class, 'someMethod']);
- minor fixes
- route middleware
- multi-lang
- guards
- CLI
- migration
- and others and others