这不是我先前的问题here的重复。
我正在使用botman为我的休闲应用程序创建一个机器人。
使用松散的api,我创建了一个我想在laravel应用上连接到botman的机器人。我正在使用ngrok隧道本地主机。我必须先验证我的网址才能将其用于机器人。好吧,我尝试验证网址,但我不断收到此错误。
您的请求网址未使用正确的质询值进行响应。更新您的URL以接收新的请求和值。
检查ngrok终端显示,正在接收来自松弛的请求,状态为200。如果我使用邮递员重现该请求,则返回质询参数的值,如果松弛,我仍然会得到erorr。我使用此代码将松弛驱动程序加载到我的路由文件中。
<?php
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\Drivers\Slack\SlackDriver;
use BotMan\BotMan\Drivers\DriverManager;
Route::match(['get', 'post'],'botman', function () {
DriverManager::loadDriver(SlackDriver::class);
// Create BotMan instance
$config = [
'slack' => [
'token' => '***slack Token***' //slack token
]
];
$botman = BotManFactory::create($config);
// give the bot something to listen for.
$botman->hears('hello', function (BotMan $bot) {
$bot->reply('Hello yourself.');
});
// start listening
$botman->listen();
});
我努力尝试像在我的路线文件中一样,用网址中的挑战参数强制响应。
$payload = $request->json();
if ($payload->get('type') === 'url_verification') {
return $payload->get('challenge');
}
SlackBot::hears('keyword', function (Bot $bot) {
$bot->respond('lets begin');
});
这仍然行不通,我仍然收到URL didn’t respond with the correct challenge value...
错误。
我想念什么?或者我应该如何使用松弛驱动程序以正确的参数进行响应? Web驱动程序运行完美。
答案 0 :(得分:1)
我注意到,松弛的api希望挑战值采用json格式。
简单地做return $payload->get('challenge');
。不能解决问题。我将其更改为return response->json( return $payload->get('challenge'));
。这已经验证了我的网址。
不确定整个botman松弛驱动程序是否有问题,我没有发现其他人有同样的问题。