botman / botman/driver-slack

Interactive Message buttons not working

Open
#50 11 comments 5 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
51
Forks
54
PR merge metrics
No merged PRs in 30d

Description

Hello There,

I'm having some issues with interactive buttons in a conversation.

I have copied everything relevant from botman studio and everything is working with the exception of buttons and menu list interactions.

When i click a button, i get by fallback message '' Sorry i don't understand that command " As apposed to responding with a joke or quote.

I'm sure i'm missing a configuration or something, but I can't for the life of me figure out what the issue is.

route/botman.php
```
hears('Hi', function ($bot) {
$bot->reply('Hello!');
});

$botman->hears('Start conversation', BotManController::class.'@startConversation');

$botman->fallback(function($bot) use ($actions) {
$bot->reply("Sorry i don't understand that command");
});
```
Botman controller
```
/**
* Place your BotMan logic here.
*/
public function handle(Request $request)
{
$botman = app('botman');
$botman->listen();
}

public function startConversation(BotMan $bot)
{
$bot->startConversation(new ExampleConversation());
}
```

Example conversation

```
fallback('Unable to ask question')
->callbackId('ask_reason')
->addButtons([
Button::create('Tell a joke')->value('joke'),
Button::create('Give me a fancy quote')->value('quote'),
]);

return $this->ask($question, function (Answer $answer) {
Log::info("Is interactive reply ? " . $answer->isInteractiveMessageReply());
$this->say("Is interactive reply ? " . $answer->isInteractiveMessageReply());
$this->say($answer->getValue());
if ($answer->isInteractiveMessageReply()) {
Log::info("Inside interactive message reply");
Log::Info("Answer value : " . $answer->value());
if ($answer->getValue() === 'joke') {
$responseContent = file_get_contents('http://api.icndb.com/jokes/random');
Log::info($responseContent);
$joke = json_decode($responseContent);
$this->say($joke->value->joke);
} else {
$this->say(Inspiring::quote());
}
}
});
}

/**
* Start the conversation
*/
public function run()
{
$this->askReason();
}
}
```

Contributor guide

Open the contributing guide

Research direction

Start with route/botman.php, the controller's handle() and startConversation() methods, and ExampleConversation::askReason(), then reproduce the button interaction through botman->listen(). Done means the joke and quote buttons reach their intended branches instead of triggering the fallback message.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.