mollsoft / laravel-telegram-bot
这是我创建的包 laravel-telegram-bot
Requires
- php: ^8.3
- ext-dom: *
- danog/telegram-entities: ^1.0
- illuminate/contracts: ^11.0
- illuminate/support: ^11.0
- spatie/laravel-package-tools: ^1.16
- symfony/dom-crawler: ^7.1
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- dev-main
- v1.0.48
- v1.0.47
- v1.0.46
- v1.0.45
- v1.0.44
- v1.0.43
- v1.0.42
- v1.0.41
- v1.0.40-beta
- v1.0.39-beta
- v1.0.38-beta
- v1.0.37-beta
- v1.0.36-beta
- v1.0.35-beta
- v1.0.34-beta
- v1.0.33-beta
- v1.0.32-beta
- v1.0.31-beta
- v1.0.30-beta
- v1.0.29-beta
- v1.0.28-beta
- v1.0.27-beta
- v1.0.26-beta
- v1.0.25-beta
- v1.0.24-beta
- v1.0.23-beta
- v1.0.22-beta
- v1.0.21-beta
- v1.0.20-beta
- v1.0.19-beta
- v1.0.18-beta
- v1.0.17-beta
- v1.0.16-beta
- v1.0.15-beta
- v1.0.14-beta
- v1.0.13-beta
- v1.0.12-beta
- v1.0.11-beta
- v1.0.10-beta
- v1.0.9-beta
- v1.0.8-beta
- v1.0.7-beta
- v1.0.6-beta
- v1.0.5-beta
- v1.0.4-beta
- v1.0.3-beta
- v1.0.2-beta
- v1.0.1-beta
- v1.0.0
- v1.0.0-beta
This package is auto-updated.
Last update: 2024-09-26 12:14:30 UTC
README
EN: 此包适用于 Laravel 11+,允许您轻松创建交互式 Telegram 机器人,使用 Laravel 路由,并使用 Blade 模板与用户进行对话。
RU: Этот пакет для Laravel 11+ позволяет с легкостью создавать интерактивные Telegram боты, при чем использовать маршрутизацию Laravel, а для ведения диалога с пользователем - использовать Blade шаблоны.
安装 / Установка
您可以通过 composer 安装此包
使用包管理器 Composer 安装此包
composer require mollsoft/laravel-telegram-bot
php artisan telegram:install
您可以使用以下命令发布并运行迁移
您可以使用以下命令发布并运行迁移
php artisan vendor:publish --tag="telegram-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="telegram-config"
可选地,您可以使用以下命令发布视图
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="telegram-views"
可选地,如果您使用 Sail 进行本地开发,您需要在 supervisord.conf 文件中添加 PHP 参数 PHP_CLI_SERVER_WORKERS="10"
[program:php] command=%(ENV_SUPERVISOR_PHP_COMMAND)s user=%(ENV_SUPERVISOR_PHP_USER)s environment=LARAVEL_SAIL="1",PHP_CLI_SERVER_WORKERS="10" stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0
您可以使用 Laravel Auth,编辑 config/auth.php 文件并编辑 guards 部分
'guards' => [ 'web' => [...], 'telegram' => [ 'driver' => 'telegram', 'provider' => 'users', ] ],
之后,您可以在路由中使用中间件 auth:telegram
如果您想要处理自动截断对话,您必须使用 Schedule 每分钟运行命令 php artisan telegram:truncate
使用 / Использование
创建新的 Telegram 机器人
php artisan telegram:new-bot
为机器人设置 Webhook
php artisan telegram:set-webhook
为机器人取消 Webhook
php artisan telegram:unset-webhook
为机器人手动轮询(在本地主机上)
php artisan telegram:pooling [BOT_ID]
内联键盘
如果您想要创建用于更改当前 URI 查询参数的按钮,请使用此模板
<inline-keyboard> <row> <column query-param="value">Change query param</column> </row> </inline-keyboard>
如果您想要发送 POST 数据,您必须使用此模板
<inline-keyboard> <row> <column data-field="value">Send field value</column> </row> </inline-keyboard>
如果您发送的数据很长,您可以使用此模板进行加密
<inline-keyboard> <row> <column data-field="long value" encode="true">Encoded send data</column> </row> </inline-keyboard>
如果您想从按钮重定向到另一个页面,请使用此模板
<inline-keyboard> <row> <column data-redirect="/">Redirect to /</column> </row> </inline-keyboard>
测试 / Тестирование
composer test
想法 / Идеи
- 在 Inline Button 中添加参数
query-history=false以防止当前 URL 被保存到 referer,并在后退时执行表单重置 - 而是返回。 - 允许用户上传图片/视频/文档,并在消息中解析 capture。
- 在 Reply Button 中添加发送电话号码按钮,并在 TelegramRequest 中获取结果。
- 读取 TelegramRequest 中的转发联系人的结果。
变更日志 / Логи изменений
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
致谢 / Авторы
许可 / Лицензия
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。