I’m looking in to BotMan to revamp my existing Messenger-based chatbot and had a lot of trouble getting BotMan to listen. When using BotMan Studio, it’s easy, but I didn’t want to create a whole new Laravel app just to use the software, so I followed BotMan’s integration documentation.
I installed the package, followed the instructions, but nothing was happening. Then after much fiddling, I came across a few things that got it working:
- The DialogFlow token should be your Client Access Token, which you can find by going into the settings for your DialogFlow agent:
- You need to add the Laravel Cache to the BotMan Factory:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Middleware\DialogFlow;
use BotMan\BotMan\Cache\LaravelCache; // Add this
class AuroraBotController extends Controller
{
function handleIntent(Request $request) {
$botman = BotManFactory::create(config('aurorabot.botman', []), new LaravelCache(), app()->make('request')); // And change this line to this
$dialogflow = DialogFlow::create(config('aurorabot.apikey', null))->listenForAction();
$botman->middleware->received($dialogflow);
$botman->hears('get_current_kp', function (BotMan $bot) {
// Handle the intent here
})->middleware($dialogflow);
$botman->listen();
}
}