Chatbot - Botman功能不起作用

时间:2018-03-27 17:33:01

标签: php facebook chatbot

我正在使用Botman 2.0构建Facebook Messenger聊天机器人。

webhook验证一切正常,hear()reply()方法效果很好。

但是,看起来其他方法看起来不起作用。

每当我使用say()方法时,它都无法运行。我的服务器收到来自Messenger的请求,但它没有响应消息响应。

我用Botman的主要例子进行测试:

$botman->hears('Hello BotMan!', function($bot) {
    $bot->reply('Hello!');
    $bot->ask('Whats your name?', function($answer, $bot) {
        $bot->say('Welcome '.$answer->getText()); //this never works
    });
});

此外,当我尝试使用ButtonTemplate时,它会引发异常:

PHP Fatal error: Uncaught Error: Class 'ButtonTemplate' not found

即使Botman的Facebook驱动程序已加载:

DriverManager::loadDriver(\BotMan\Drivers\Facebook\FacebookDriver::class);

我的composer.json文件看起来正确:

"require": {
        "botman/driver-facebook": "^1.7"
    }

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

您需要在标题中添加以下类:

use BotMan\Drivers\Facebook\Commands\AddStartButtonPayload;
use BotMan\Drivers\Facebook\Commands\AddGreetingText;

use BotMan\Drivers\Facebook\Extensions\ButtonTemplate;
use BotMan\Drivers\Facebook\Extensions\ElementButton;

答案 1 :(得分:0)

这对我有用。我在控制器类之后立即添加了以下 Facebook 扩展

use BotMan\Drivers\Facebook\Extensions\Element as Element; 
use BotMan\Drivers\Facebook\Extensions\ElementButton as ElementButton; 
use BotMan\Drivers\Facebook\Extensions\ButtonTemplate as ButtonTemplate; 
use BotMan\Drivers\Facebook\Extensions\GenericTemplate as GenericTemplate; 
use BotMan\Drivers\Facebook\Extensions\ListTemplate as ListTemplate;

$botman = resolve('botman');

$botman->hears('Hello BotMan!', function($bot) {
    $bot->reply('Hello!');
    $bot->ask('Whats your name?', function($answer, $bot) {
        $bot->say('Welcome '.$answer->getText()); //this works
    });
});

您也可以从此链接查看https://www.gitmemory.com/issue/botman/botman/1055/522233149