Botman laravel REST API 设置

Posted

技术标签:

【中文标题】Botman laravel REST API 设置【英文标题】:Botman laravel REST API setup 【发布时间】:2020-02-14 00:34:36 【问题描述】:

我是 Botman 的新手。

我尝试实现一个简单的函数来测试它是如何工作的,但我一直得到空响应,看起来 botman 没有听到我的消息。

我在没有工作室的情况下安装了 botman,因为我试图让事情变得简单。我还按照文档中的说明安装了一个网络驱动程序。

在我的项目中,我使用 JWT 作为身份验证,所以我创建了一个这样的受保护路由:

Route::group(['middleware' => ['assign.guard:user', 'jwt.auth']], function () 

    Route::post(
        '/',
        'UserBotManController@startConversation'
    )->name('botman.user.start');

);

控制器如下所示:

<?php


namespace Project\UI\Api\Controllers\User\Botman;


use App\Http\Controllers\Controller;
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Drivers\DriverManager;

class UserBotManController extends Controller

    public function startConversation()
    
        $config = [];

        DriverManager::loadDriver(\BotMan\Drivers\Web\WebDriver::class);

        $botman = BotManFactory::create($config);

        $botman->hears('hello', function (BotMan $bot) 
            $bot->reply('Hello yourself.');
        );

        $botman->listen();
    

当我向此路由发送请求时,没有得到空响应:

看起来 botman 听不到我的信息...

我尝试查看内部:dd($botman-&gt;getDriver());

我看到内容包含所有数据:

谁能帮我理解,我怎样才能让它工作?

【问题讨论】:

【参考方案1】:

好的,所以我终于找到了解决方案。我检查了它从https://botman.io 网站发送的请求,它是表单数据,而不是 JSON。

diver 字段必须设置为web

希望对某人有所帮助。

【讨论】:

以上是关于Botman laravel REST API 设置的主要内容,如果未能解决你的问题,请参考以下文章

php 使用Passport进行Laravel REST API身份验证:https://www.cloudways.com/blog/rest-api-laravel-passport-authen

Laravel 5 REST API

简单的 Laravel 5 REST API

php 【Laravel】5.7 REST API设置

Laravel REST API - 无限循环

如何分析 laravel 的 REST API