PHP code example of zerexei / botman-drivers

1. Go to this page and download the library: Download zerexei/botman-drivers library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

zerexei / botman-drivers example snippets


use BotMan\BotMan\Drivers\DriverManager;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Cache\LaravelCache;
use Drivers\Messenger\MessengerDriver;
use Drivers\WhatsApp\WhatsAppDriver;
use Drivers\Viber\ViberDriver;

DriverManager::loadDriver(MessengerDriver::class);
DriverManager::loadDriver(WhatsAppDriver::class);
DriverManager::loadDriver(ViberDriver::class);

$botman = BotManFactory::create($config, new LaravelCache());

namespace App\Bot;

use BotMan\BotMan\BotMan;
use Drivers\WhatsApp\WhatsAppController as BaseController;
use App\Bot\Conversations\SupportConversation;

class WhatsAppController extends BaseController
{
    protected function registerHandlers(BotMan $botman): void
    {
        $botman->hears('hello', fn($bot) => $bot->reply('Hi! How can I help?'));
        $botman->hears('support', fn($bot) => $bot->startConversation(new SupportConversation));
        $botman->fallback(fn($bot) => $bot->reply("Sorry, I didn't understand that."));
    }
}

'whatsApp' => App\Bot\WhatsAppController::class,

use Drivers\Messenger\MessageTemplates\ButtonTemplate;
use Drivers\Messenger\MessageTemplates\Button;

$bot->reply(
    ButtonTemplate::create('What would you like to do?')
        ->addButton(Button::create('Visit Docs', 'web_url',  'https://botman.io'))
        ->addButton(Button::create('Get Help',   'postback', 'HELP_PAYLOAD'))
);

use Drivers\Messenger\MessageTemplates\QuickReplyTemplate;
use Drivers\Messenger\MessageTemplates\QuickReplyButton;

$bot->reply(
    QuickReplyTemplate::create('Are you sure?')
        ->addButton(QuickReplyButton::create('Yes ✅', 'text', 'YES'))
        ->addButton(QuickReplyButton::create('No ❌',  'text', 'NO'))
);

use Drivers\Messenger\MessageTemplates\GenericTemplate;
use Drivers\Messenger\MessageTemplates\Element;
use Drivers\Messenger\MessageTemplates\Button;

$bot->reply(
    GenericTemplate::create()
        ->addElement(
            Element::create('Product Name', 'Short description', 'https://example.com/img.jpg')
                ->addButton(Button::create('View', 'web_url', 'https://example.com'))
                ->addButton(Button::create('Buy',  'postback', 'BUY_123'))
        )
);

use Drivers\Messenger\MessageTemplates\ImageTemplate;

$bot->reply(ImageTemplate::create('https://example.com/photo.jpg'));

use Drivers\WhatsApp\MessageTemplates\TextTemplate;

$bot->reply(TextTemplate::create('Hello from WhatsApp! 👋'));

use Drivers\WhatsApp\MessageTemplates\ImageTemplate;

$bot->reply(ImageTemplate::create('https://example.com/photo.jpg'));

use Drivers\WhatsApp\MessageTemplates\ButtonTemplate;
use Drivers\WhatsApp\MessageTemplates\Button;

// Second argument sets the list button label (default: 'Options')
$bot->reply(
    ButtonTemplate::create('What do you need help with?', 'Choose')
        ->addButton(Button::create('1', 'Technical Support'))
        ->addButton(Button::create('2', 'Billing'))
        ->addButton(Button::create('3', 'General Inquiry'))
);

use Drivers\Viber\MessageTemplates\TextTemplate;

$bot->reply(TextTemplate::create('Hello from Viber! 👋'));

use Drivers\Viber\MessageTemplates\ImageTemplate;

$bot->reply(ImageTemplate::create('https://example.com/photo.jpg'));

use Drivers\Viber\MessageTemplates\ButtonTemplate;
use Drivers\Viber\MessageTemplates\Button;

$bot->reply(
    ButtonTemplate::create('Pick an action:')
        ->addButton(Button::create('Say Hello'))
        ->addButton(Button::create('Visit Site', 'open-url', 'https://example.com'))
);

use Drivers\Viber\MessageTemplates\GenericTemplate;
use Drivers\Viber\MessageTemplates\Element;
use Drivers\Viber\MessageTemplates\Button;

$bot->reply(
    GenericTemplate::create()
        ->addElement(
            Element::create('Card Title', 'Card subtitle', 'https://example.com/img.jpg')
                ->addButton(Button::create('Open', 'open-url', 'https://example.com'))
        )
);
bash
php -S localhost:8000
bash
composer dump-autoload
bash
cp -r Drivers/Template Drivers/MyPlatform