亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Symfony 3 中集成 Botman(控制器和視圖)?

如何在 Symfony 3 中集成 Botman(控制器和視圖)?

PHP
GCT1015 2023-07-15 15:46:08
我想將聊天機器人集成到我的 symfony 網站中。所以我看到有 Botman,它是一個 PHP 框架,它滿足了我的需求,但是我沒有找到有關它與 Symfony 集成的文檔。所以因為它也在 PHP 和 symfony 中,所以我開始使用 Composer 安裝它,然后司機也一樣。這是我遵循的步驟作曲家需要 botman/botman作曲家需要 botman/driver-web在我的額頭上做一個控制器我的控制器 public function chatAction(){    $config = [    // Your driver-specific configuration    // "telegram" => [    //    "token" => "TOKEN"    // ]];   DriverManager::loadDriver(\BotMan\Drivers\Web\WebDriver::class);   $botman = BotManFactory::create($config);  // Give the bot something to listen for.$botman->hears('Hello', function (BotMan $bot) {    $bot->reply('Hello too');});// $botman->fallback(function($bot) {//     $bot->reply('Sorry, I did not understand these commands. Here is a list of commands I understand: ...');// });// Start listening$botman->listen();return $this->render('DoctixFrontBundle:Chat:index.html.twig'); }我的觀點 對于我的觀點,我沒有起點,我不知道該怎么做,這就是為什么我只是將 botman 的 css 和 js 放入其中 <!doctype html><html><head>    <title>BotMan Widget</title>    <meta charset="UTF-8">    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/assets/css/chat.min.css"></head><body>    <script id="botmanWidget" src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/chat.js'></script></body>   </html><script>        var botmanWidget = {            frameEndpoint: '/chat.html',            introMessage: 'Hello, I am a Chatbot',            chatServer : 'chat.php',             title: 'My Chatbot',             mainColor: '#456765',            bubbleBackground: '#ff76f4',            aboutText: '',            bubbleAvatarUrl: '',        };     </script>        <script src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/widget.js'></script>但沒什么可做的,我的渲染中只顯示了一段css和js代碼。可以幫助我謝謝。
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

我假設您使用Botman Web 小部件來呈現聊天框。

您需要三個路由和三個控制器功能:

  • 將發回包含聊天機器人小部件的頁面(以下示例中的“主頁”),

  • 一個將處理 Botman 邏輯并返回機器人的序列化答案(以下示例中的“消息”),

  • 將發送回聊天框架(以下示例中的“chatframe”)。

這是一個基本示例:

<?php


namespace AppBundle\Controller;


use Symfony\Component\Routing\Annotation\Route;

use Symfony\Component\HttpFoundation\Request;

use Symfony\Component\HttpFoundation\Response;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;


use BotMan\BotMan\BotMan;

use BotMan\BotMan\BotManFactory;

use BotMan\BotMan\Drivers\DriverManager;



class BobotController extends Controller{


? ? /**

? ? ?* @Route("/message", name="message")

? ? ?*/

? ? function messageAction(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();

? ? }

? ??

? ? /**

? ? ?* @Route("/", name="homepage")

? ? ?*/

? ? public function indexAction(Request $request)

? ? {

? ? ? ? return $this->render('DoctixFrontBundle:Chat:homepage.html.twig');

? ? }

? ??

? ? /**

? ? ?* @Route("/chatframe", name="chatframe")

? ? ?*/

? ? public function chatframeAction(Request $request)

? ? {

? ? ? ? return $this->render('DoctixFrontBundle:Chat:chat_frame.html.twig');

? ? }

}

您需要兩個視圖,第一個是聊天框架( Botman Web 小部件文檔chat_frame.html.twig中提供的簡單復制粘貼):


<!DOCTYPE html>

<html>

? ? <head>

? ? ? ? <title>BotMan Widget</title>

? ? ? ? <meta charset="UTF-8">

? ? ? ? <link rel="stylesheet" type="text/css" >

? ? </head>

? ? <body>

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

? ? </body>

</html>

右下角將包含聊天小部件的頁面homepage.html.twig:


<!DOCTYPE html>

<html>

? ? <head>

? ? ? ? <!-- Required meta tags -->

? ? ? ? <meta charset="utf-8">

? ? ? ? <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

? ? ? ? <title>Hello World!</title>

? ? </head>

? ? <body>

? ? ? ? <h1>Hello!</h1>

? ? ? ? <p>Click on the chat button.</p>

? ? ? ? <script>

? ? ? ? ? ? var botmanWidget = {

? ? ? ? ? ? frameEndpoint: '{{ path("chatframe") }}',

? ? ? ? ? ? chatServer: '{{ path("message") }}',

? ? ? ? ? ? introMessage: 'Hello, I am a Chatbot',

? ? ? ? ? ? title: 'My Chatbot',?

? ? ? ? ? ? mainColor: '#456765',

? ? ? ? ? ? bubbleBackground: '#ff76f4',

? ? ? ? ? ? aboutText: ''

? ? ? ? };

</script>

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

? ? </body>

</html>


查看完整回答
反對 回復 2023-07-15
  • 1 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號