Nutgram 与 Laravel/Symfony 集成教程:在现有项目中轻松添加 Telegram 机器人
Nutgram 与 Laravel/Symfony 集成教程:在现有项目中轻松添加 Telegram 机器人
【免费下载链接】nutgramThe Telegram bot framework that doesn't drive you nuts.项目地址: https://gitcode.com/gh_mirrors/nu/nutgram
Nutgram 是一个专为 Telegram 机器人开发设计的轻量级 PHP 框架,它以简洁的 API 和灵活的架构著称,特别适合在现有 Laravel 或 Symfony 项目中快速集成机器人功能。本教程将详细介绍如何在这两个主流 PHP 框架中无缝接入 Nutgram,让你无需从零构建即可拥有强大的 Telegram 交互能力。
📦 为什么选择 Nutgram?
Nutgram 作为 "不抓狂的 Telegram 机器人框架",具备以下核心优势:
- 框架无关性:可独立使用或与任何 PHP 框架集成
- 现代化设计:基于 PHP 8.2+ 特性,支持类型提示和枚举
- 丰富生态:提供官方 Laravel 包和 Symfony bundle
- 完整功能:支持所有 Telegram Bot API 最新特性,包括对话管理、键盘交互和消息处理
从composer.json可以看到,Nutgram 已将 "laravel" 列为核心关键词,并通过illuminate/macroable等依赖确保与 Laravel 生态的兼容性。
🔧 Laravel 项目集成步骤
1. 安装 Nutgram Laravel 包
在 Laravel 项目根目录执行以下命令:
composer require nutgram/laravel该包会自动注册服务提供者,并发布配置文件到config/nutgram.php。
2. 配置 Telegram 令牌
在.env文件中添加你的 Telegram 机器人令牌:
NUTGRAM_TOKEN=your-telegram-bot-token-here3. 创建第一个命令处理器
使用 Artisan 命令生成处理器:
php artisan make:nutgram-command StartCommand编辑生成的文件app/Nutgram/Commands/StartCommand.php:
namespace App\Nutgram\Commands; use SergiX44\Nutgram\Nutgram; use SergiX44\Nutgram\Handlers\Type\Command; class StartCommand extends Command { protected string $command = 'start'; public function handle(Nutgram $bot): void { $bot->sendMessage('欢迎使用 Laravel 集成的 Nutgram 机器人!'); } }4. 运行机器人
通过 Artisan 命令启动机器人:
php artisan nutgram:run🛠️ Symfony 项目集成步骤
1. 安装 Nutgram Symfony Bundle
在 Symfony 项目中执行:
composer require nutgram/symfony-bundle2. 配置令牌
编辑config/packages/nutgram.yaml:
nutgram: token: '%env(NUTGRAM_TOKEN)%'在.env文件中添加:
NUTGRAM_TOKEN=your-telegram-bot-token-here3. 创建控制器
生成一个控制器处理更新:
php bin/console make:controller BotController修改控制器代码:
namespace App\Controller; use SergiX44\Nutgram\Nutgram; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class BotController extends AbstractController { #[Route('/bot/webhook', name: 'bot_webhook')] public function webhook(Nutgram $bot): Response { $bot->onCommand('start', function (Nutgram $bot) { $bot->sendMessage('欢迎使用 Symfony 集成的 Nutgram 机器人!'); }); return $bot->handle(); } }4. 设置 Webhook
通过 Symfony 控制台命令设置 Telegram Webhook:
php bin/console nutgram:webhook:set https://your-domain.com/bot/webhook📝 核心功能使用示例
处理文本消息
无论是 Laravel 还是 Symfony,都可以使用相同的语法处理消息:
$bot->onText('Hello {name}', function (Nutgram $bot, string $name) { $bot->sendMessage("你好,$name!"); });使用键盘交互
创建内联键盘(Laravel 示例):
use SergiX44\Nutgram\Telegram\Types\Keyboard\InlineKeyboardButton; use SergiX44\Nutgram\Telegram\Types\Keyboard\InlineKeyboardMarkup; $bot->onCommand('menu', function (Nutgram $bot) { $keyboard = InlineKeyboardMarkup::make() ->addRow( InlineKeyboardButton::make('点击我', callback_data: 'clicked') ); $bot->sendMessage('这是一个内联菜单', reply_markup: $keyboard); }); $bot->onCallbackQueryData('clicked', function (Nutgram $bot) { $bot->answerCallbackQuery('你点击了按钮!'); });📚 扩展学习资源
- 官方文档:完整的 Nutgram 功能说明和高级用法
- Laravel 集成源码:nutgram/laravel
- Symfony 集成源码:nutgram/symfony-bundle
- 示例项目:Starter Kit 提供了基础实现参考
🚀 总结
通过 Nutgram 提供的官方集成包,你可以在几分钟内将 Telegram 机器人功能添加到现有 Laravel 或 Symfony 项目中。其优雅的 API 设计和完善的文档使开发过程变得简单直观,无论是简单的命令响应还是复杂的对话流程,都能轻松实现。现在就尝试集成 Nutgram,为你的应用添加强大的 Telegram 交互能力吧!
【免费下载链接】nutgramThe Telegram bot framework that doesn't drive you nuts.项目地址: https://gitcode.com/gh_mirrors/nu/nutgram
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
