sgomez / botman-bundle

Symfony的BotMan集成

安装次数: 303

依赖关系: 0

建议者: 0

安全: 0

星标: 12

关注者: 2

分支: 9

开放问题: 2

类型:symfony-bundle


README

Symfony的BotMan集成

这是一个用于在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

您只需添加您想要使用的驱动器

步骤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以获取有关我们的行为准则和向我们的pull请求提交过程的详细信息。

版本控制

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

许可证

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