sm9sh/botman-bundle

BotMan 对 Symfony 的集成

维护者

详细信息

github.com/sm9sh/botman-bundle

源代码

安装: 4

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 9

类型:symfony-bundle

This package is auto-updated.

Last update: 2024-09-29 05:49:15 UTC


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 sgomez/botman-bundle

步骤 2:启用捆绑包

如果您正在使用 Symfony Flex,则可以跳过此步骤。

在您的 app/AppKernel.php 文件中启用捆绑包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Sgomez\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

您只需要添加您想要使用的 drivers

步骤 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 别名。

驱动器命令

某些驱动器将包含命令以帮助配置它

Facebook

以下命令可用

Telegram

贡献

有关我们的行为准则和向我们的项目提交拉取请求的流程的详细信息,请参阅 CONTRIBUTING.md

版本控制

我们使用 SemVer 进行版本控制。有关可用的版本,请参阅此存储库上的标签。然而,此项目处于非常初级的 alpha 状态,配置文件格式可能会非常快速地改变。

许可证

本项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE.md 文件。