我是 Symfony 的新手。我创建了一个 Symfony 应用程序,并且我的 Symfony 根目录中有一个 BotMan 文件夹,所以我想将该机器人集成到我的应用程序中。我的目录结构是这样的:
my_symfony_project/
bin/
config/
migrations/
...
my_botman_project/
那么如何在我的 Symfony 项目中“包含”BotMan 类,以便能够将它们用作任何其他 Symfony 类呢?我需要更改我的 services.yaml 文件吗?如何?我知道这可能是一个愚蠢的问题,但我还不明白它是如何工作的。提前致谢。
编辑:做了一些改变......
我再次安装了 BotMan,但作为独立的作曲家依赖项,现在我在 vendor 中有我的“botman”文件夹。之后,我创建了一个带有 Web 小部件的树枝模板和一个带有“/botman/chat”路由的方法。小部件出现了,但我不知道如何在其中进行聊天。更详细的代码:
我的模板(mybot/index.html.twig):
<script src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/widget.js'></script>
HomeController.php(仅限botman方法)
/**
* @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 格式的响应。所以我决定使用Pete Lawrence 的聊天机器人作为指导来编写我的模板,并且我不使用预构建的小部件。 链接到帮助我解决此问题的 GitHub 已关闭问题。