milly / laragram
Laravel 包,用于在 Laravel 项目中开发 Telegram 机器人
4.0.0
2024-07-20 14:46 UTC
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-09-20 15:15:43 UTC
README
一个简单的 Laravel 包,用于在您的 Laravel 项目中使用 Telegram 机器人 API
特性
它包含 Telegram 机器人 API 的所有方法
它们都有完整的文档
现在您不必记住哪个属性在哪个对象中,因为它们也有文档)
您可以直接通过您的函数获取它们
顺便说一下,您可以一次性调用其中许多方法
它支持 FSM-Routing
安装
此包需要 PHP 8.0+
首先,安装 Laragram 包,并确保数据库连接设置正确!
composer require milly/laragram
然后运行以下命令以发布资源和配置
php artisan vendor:publish --provider="Milly\Laragram\LaragramServiceProvider"
将您的 Telegram 机器人令牌添加到 .env
TELEGRAM_BOT_TOKEN=123456789:XXXXXXXXXXXXXXXXXXXXXXXXXXX
运行迁移以使用 FSM-Routing
php artisan migrate
如果您想获取更新,将 webhook 设置为您的地址(例如 domain.com/api/bot)以处理更新
就这样,您现在可以开始使用您的机器人了
使用
-
本地开发
php artisan laragram:start
-
方法
use Milly\Laragram\Laragram; Laragram::sendMessage( 123456789, // chat_id null, // message thread id "Hello world", // message text );
-
对象
use Milly\Laragram\Types\Message; // with variable $message = new Message(); $text = $message->text; // inside the function function getText(Message $message) { $text = $message->text; }
-
FSM 路由
// 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 版本
- 路由定义中支持匿名函数
// 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 ]);
- 状态管理现在支持正则表达式作为状态
// routes/laragram.php //... FSM::route('state_+', [SomeClass::class, 'someMethod']);
- 小修复
将其作为包在 Laravel 项目中使用,您将能够使用所有功能,包括
- 路由中间件
- 多语言
- 守卫
- CLI
- 迁移
- 以及其他更多功能