milly / laragram
Laravel package to develop telegram bot inside laravel project
Fund package maintenance!
Patreon
Installs: 1 161
Dependents: 1
Suggesters: 0
Security: 0
Stars: 43
Watchers: 2
Forks: 7
Open Issues: 0
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-11-20 15:39:11 UTC
README
Simple laravel package to use telegram bot API inside your laravel project
Features
It has every method of telegram bot api:
Which are fully documented:
Now you don't have to remember which property is in which object, because they are documented too):
Which you can get directly throuhg your function:
BTW, you can call many of them at once:
It supports FSM-Routing:
Installation
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
Usage:
-
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" ); }); }
2.3 version
- 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
Use it inside laravel project as a package and you will be able to use all features, including:
- route middleware
- multi-lang
- guards
- CLI
- migration
- and others and others