nek / botman-bundle
BotMan 集成到 Symfony
Requires
- php: ^7.4
- ext-curl: *
- ext-json: *
- botman/botman: ^2.6
- illuminate/support: ^8.63
- php-http/client-common: ^2.4
- php-http/guzzle6-adapter: ^2.0
- php-http/httplug-bundle: ^1.23
- symfony/cache: ^5.3
- symfony/config: ^5.3
- symfony/console: 5.3.*
- symfony/dependency-injection: ^5.3
- symfony/http-foundation: ^5.3
- symfony/http-kernel: ^5.3
- symfony/routing: ^5.3
- tightenco/collect: ^5.6
Requires (Dev)
- botman/driver-facebook: ^1.11
- botman/driver-telegram: ^1.6
- matthiasnoback/symfony-config-test: ^4.3
- matthiasnoback/symfony-dependency-injection-test: ^4.3
- phpstan/phpstan: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpstan/phpstan-symfony: ^0.12
- phpunit/phpunit: ^9.5
- symplify/easy-coding-standard: ^9.4
Suggests
- botman/driver-telegram: ^1.5
README
BotMan 集成到 Symfony
由于作者对项目进行了评分,因此决定开发分支。
这是一个用于在 Symfony 中使用 BotMan 框架的扩展包。
支持的驱动程序
仅支持标记的驱动程序。有关更多信息,请参阅官方驱动程序文档。
- Amazon Alexa
- Cisco Spark
- Facebook Messenger
- Hangouts Chat
- HipChat
- Microsoft Bot Framework
- Nexmo
- Slack
- Telegram
- Twilio
- Web
- 微信
安装
步骤 1:下载扩展包
通过运行以下命令使用 Composer 安装库:
composer require nek/botman-bundle
步骤 2:启用扩展包
如果您正在使用 Symfony Flex,则可以跳过此步骤。
在您的 app/AppKernel.php
文件中启用扩展包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Nek\Bundle\BotmanBundle\BotmanBundle(), // ... ); }
步骤 3:配置扩展包
通过运行 console config:dump-reference botman
命令,您可以查看配置文件的模板。
botman: drivers: telegram: parameters: token: ~ facebook: parameters: token: ~ app_secret: ~ verification: ~ start_button_payload: ~ # Optional greeting: # Optional # Array of - locale: ~ # Required text: ~ # Required whitelisted_domains: [] # Optional
您只需添加您想要使用的 驱动程序。
步骤 4:配置 webhook
在您的 routing.yaml 中添加 webhook 路由配置。
BotmanBundle: resource: . type: extra
默认情况下,webhook 路径 为 /botman
,但出于安全考虑,我们建议更改它。
botman: path: /botman57637357-65ce-4faf-a9d9-ee2c13011d87
现在,您必须创建 webhook 控制器类。默认配置为 App\Controller\WebhookController
。
<?php // file: src/Controller/WebhookController.php declare(strict_types=1); namespace App\Controller; use BotMan\BotMan\BotMan; use Symfony\Component\HttpFoundation\Response; class WebhookController { public function __invoke(BotMan $bot): Response { // Add your logic here // Echo bot example $bot->fallback(function (BotMan $bot): void { $bot->reply($bot->getMessage()->getText()); }); // Stop touching $bot->listen(); return new Response('', Response::HTTP_OK); } }
如果您想更改控制器类或您不是使用 Symfony Flex,您需要指定控制器类在配置文件中。
botman: controller: AppBundle\Controller\WebhookController
有关如何监听或发送消息的更多信息,请参阅官方文档。
服务
此扩展包在 BotMan 实例中配置 Symfony 容器。因此,您可以通过构造函数在 Conversations 类中注入依赖项。
如果您想在您的服务中使用 BotMan 实例,您可以注入 BotMan\BotMan\BotMan
类或 botman
别名。
驱动程序命令
某些驱动程序将具有帮助配置的命令
以下命令可用
Telegram
贡献
有关我们的行为准则和提交拉取请求的流程的详细信息,请参阅CONTRIBUTING.md。
版本控制
我们使用 SemVer 进行版本控制。有关可用的版本,请参阅此存储库的 标签。然而,此项目处于非常初级的 alpha 状态,配置文件格式可能会迅速变化。
许可
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件。