BotMan и Symfony 5.1 - Установить botman в подкаталог - PullRequest
1 голос
/ 14 июля 2020

Я новичок ie с Symfony. Я создал приложение Symfony, и у меня есть папка BotMan в моем каталоге Symfony root, поэтому я хочу интегрировать этого бота в свое приложение. Моя структура каталогов выглядит так:

my_symfony_project/
  bin/
  config/
  migrations/
  ...
  my_botman_project/

Итак, как я могу «включить» классы BotMan в мой проект Symfony, чтобы иметь возможность использовать их как любой другой класс Symfony? Мне нужно изменить файл services.yaml? Как? Я знаю, может быть, это глупый вопрос, но пока не понимаю, как это работает. Заранее спасибо.

Изменить : Внесены некоторые изменения ...

Я снова установил BotMan, но как отдельную composer зависимость, и теперь у меня есть «ботман» "папка внутри vendor. После этого я создал шаблон веточки с веб-виджетом и метод с маршрутом «/ botman / chat». Виджет появляется, но я не знаю, как получить в нем чат. Немного подробнее с кодом:

Мой шаблон (mybot / index. html .twig):

<script src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/widget.js'></script>

HomeController. php (только метод ботмана)

/**
 * @Route("/botman/chat", name="mybot")
 */
public function botman(Request $request)
{
    DriverManager::loadDriver(\BotMan\Drivers\Web\WebDriver::class);

    // Configuration for the BotMan WebDriver
    $config = [];

    // Create BotMan instance
    $botman = BotManFactory::create($config);

    // Give the bot some things to listen for.
    $botman->hears('(hello|hi|hey)', function (BotMan $bot) {
        $bot->reply('Hello!');
    });

    // Set a fallback
    $botman->fallback(function (BotMan $bot) {
        $bot->reply('Sorry, I did not understand.');
    });

    // Start listening
    //$botman->listen();

    //return new Response("hi");
    
    return $this->render('mybot/index.html.twig', [
    ]);
}

Редактировать # 2 : Наконец-то я нашел ответ ...

Чтобы использовать бота, вам необходимо вернуть пустой ответ, потому что заголовки уже были отправлены Botman. После этого, если вы включите только виджет в свой шаблон ...

<script src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/widget.js'></script>

Вы заметите, что виджет пуст и содержит только ответ в JSON. Поэтому я решил написать свой шаблон, используя чат-бота Пита Лоуренса в качестве руководства, и я не использую готовый виджет. Ссылка на закрытую проблему GitHub, которая помогла мне решить эту .

Ответы [ 2 ]

3 голосов
/ 14 июля 2020

Вы должны использовать composer для управления зависимостями.

Отметьте Альтернативные части и «Basi c Использование без BotMan Studio».

composer require botman/botman
0 голосов
/ 26 августа 2020

Вы можете найти здесь своего рода мини-руководство о том, как интегрировать Botman в проект Symfony3. Я знаю, что философия Symfony5 относительно отличается от философии Symfony3, но без потери общности может быть полезно процитированное руководство.

Кроме того, вы можете найти этот комплект , который является своего рода оболочкой, которая включает Botman непосредственно в контейнер услуг Symfony ... Однако он действителен только до Symfony4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...