繁体   English   中英

由 dialogflow 提供支持的 Botman 没有回复我的消息

[英]Botman, powered by dialogflow, is not replying to my messages

我正在学习如何使用 PHP 和 Botman.io 创建基于 Dialogflow 的 NLP 聊天机器人。 我写了一个应该可以工作的简单代码,但机器人没有回复我的消息。

我已经浏览了 botman.io 的文档和官方在线课程,但没有帮助,因为它们具有完全相同的代码。

请看一下我的代码 botman.php 文件,如果不难的话:

use App\Http\Controllers\BotManController;
use BotMan\BotMan\Middleware\Dialogflow;
use function GuzzleHttp\json_decode;
use BotMan\BotMan\Interfaces\Middleware\Received;

$botman = resolve('botman');

$dialogflow_token = 'it is secret'

$dialogflow = Dialogflow::create(dialogflow_token)->listenForAction();

$botman->middleware->received($dialogflow);

$botman->hears('weathersearch', function($bot){

    $extras = $bot->getMessage()->getExtras();
    $location = $extras['apiParameters']['geo-city'];

    $url = 'http://api.apixu.com/v1/current.json?key=38b39a718abc4c6da25112826190108&q='.urlencode($location);
    $response  = json_decode(file_get_contents($url));

    $bot->reply('The weather in' . $response->$location->$name . ', ' . $response->$location->$country . 'is: ');
    $bot->reply($response->current->condition->text);
    $bot->reply('Temperature: '.$response->current->temp_c. ' Celcius');

})->middleware($dialogflow);


?>

机器人应该通过提供当前天气温度和条件(即 25C Sunny)来响应“加利福尼亚的天气如何”之类的消息

你可以试试这个https://github.com/genkovich/DialogFlowBotManMiddleware

但你必须打开 API v2

如果你想获得 dialogflow api 并将 botman 与 dialogflow 集成,请按照下面链接中给出的这些步骤操作,它对我有用。

将 Botman 与 Dialogflow 集成

但是,仍然存在问题,例如僵尸程序无法将 go 发送到正确的意图,而只能将 go 发送到默认的欢迎和默认回退意图。 为了解决这个问题,我将“input.unknown”添加到其他意图中,并在 botman 中编写代码,如下所示:

$dialogflow = DialogFlow::create('en');
$botman->middleware->received($dialogflow);
$botman->hears('(input.*)', function ($bot) {
 $extras = $bot->getMessage()->getExtras();
 $bot->reply($extras['apiReply']);
})->middleware($dialogflow);

有关该主题的更多讨论,您可以在下面给出的链接上查看。

将输入添加到 hears 和 dialogflow 意图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM