Перейти к содержимому

Примеры ботов

Минимальный Callback

Бот отвечает на любое сообщение

php
<?php
require_once __DIR__ . 'vendor/autoload.php';

use ZhenyaGR\TGZ\TGZ;

$tg = TGZ::create(ТОКЕН);

$tg->reply('Привет, Мир!');

Простой Callback – (Эхо-бот)

php
<?php
require_once __DIR__ . 'vendor/autoload.php';

use ZhenyaGR\TGZ\TGZ;

$tg = TGZ::create(ТОКЕН);

$tg->initType($type); // Инициализация переменных из события

if ($type === 'text' || $type === 'bot_command') {
    $tg->copyMsg();
}

Простой LongPoll – (Эхо-бот)

php
require_once __DIR__ . 'vendor/autoload.php';

use ZhenyaGR\TGZ\LongPoll;
use ZhenyaGR\TGZ\TGZ;

$poll = LongPoll::create($botToken , 20);

$poll->listen(function(TGZ $tg) {
    
    $tg->initType($type);
    
    if ($type === 'text' || $type === 'bot_command') {
        $tg->copyMsg();
    }
});

Бот на конструкторе (Callback)

php
<?php
require_once __DIR__ . 'vendor/autoload.php';


use ZhenyaGR\TGZ\TGZ;
use ZhenyaGR\TGZ\Bot;

$tg = TGZ::create(ТОКЕН);
$bot = new Bot($tg); // Создаем экземпляр бота

$bot->onCommand('img', '!картинка')
    ->img('cat.jpg')
    ->text('Вот твой кот');
    
$bot->run(); // Запускаем обработку события

Бот на конструкторе (LongPoll)

php
<?php
require_once __DIR__ . 'vendor/autoload.php';


use ZhenyaGR\TGZ\LongPoll;
use ZhenyaGR\TGZ\Bot;

$poll = LongPoll::create(ТОКЕН);
  
$poll->listen(function (TGZ $tg) use ($bot) {
    $bot = new Bot($tg); // Создаем экземпляр бота

    $bot->onCommand('img', '!картинка')
        ->img('cat.jpg')
        ->text('Вот твой кот');
    
    $bot->run(); // Запускаем обработку события
});

Бот с обработкой Команд на конструкторе (Callback)

php
<?php
require_once __DIR__ . 'vendor/autoload.php';


use ZhenyaGR\TGZ\TGZ;
use ZhenyaGR\TGZ\Bot;

$tg = TGZ::create(ТОКЕН);
$bot = new Bot($tg); // Создаем экземпляр бота

// Создание кнопки с её обработкой
$bot->btn('callback1', 'Кнопка 1')->query("Callback кнопка");

// Обработка команды бота
$bot->onBotCommand('img', '/img')->img('cat.jpg')->text('Изображение с кнопкой')->inlineKbd([['callback1'], [$tg->buttonCallback('callback2', 'Кнопка 2')]]);

// Обработка команды с параметрами
$bot->onCommand('sum', '!посчитай %n + %n')->func(function ($number1, $number2) {
    $tg->msg($number1 + $number2)->send();
});

// Обработка полного совпадения текста
$bot->onText('help', "помощь")->func(function () {
    $tg->msg("Никто тебе не поможет")->send();
});

// Обработка команды по регулярному выражению
$bot->onTextPreg('more_word', "!\!напиши (.*)!")->func(function ($match) {
    $tg->msg("Ваше предложение: " . $match[0])->send();
});

// Обработка неизвестного текста
$bot->onDefault()->func(function () {
    $tg->msg("Я не понимаю твоего текста")->send();
});

// Обработка callback, если у кнопки нет обработки
$bot->onCallback('callback2')->func(function () use ($tg) {
    $tg->initQuery($query_id); 
    $tg->answerCallbackQuery($query_id);

    $tg->msg("Вы нажали на кнопку")->sendEdit();
});

$bot->run();

Бот с обработкой Кнопок на конструкторе (Callback)

php
<?php
require_once __DIR__ . 'vendor/autoload.php';


use ZhenyaGR\TGZ\TGZ;
use ZhenyaGR\TGZ\Bot;

$tg = TGZ::create(ТОКЕН);
$bot = new Bot($tg); // Создаем экземпляр бота

$bot->onDefault()->func(function () use ($bot) {
    $bot->run('first');
    // Запускаем команду с id 'first'
});

$bot->onBotCommand('first', '/start')
    ->kbd([['fish', 'cat']])
    ->text('Выберите животное:'); 

$bot->btn('fish', 'Рыбка')->text('Вы выбрали Рыбку!')->img('fish.jpg');
$bot->btn('cat', 'Котик')->text('Вы выбрали Котика!')->img('cat.jpg');

$bot->run();

Бот с обработкой Inline-Кнопок на конструкторе (Callback)

php
<?php
require 'vendor/autoload.php';

use ZhenyaGR\TGZ\TGZ;

$tg = new TGZ('BOT_TOKEN');
$bot = new \ZhenyaGR\TGZ\Bot($tg);

$bot->btn('like', '👍')
    ->query('Спасибо за оценку!')
    ->text("Спасибо за лайк!");
    
$bot->btn('dislike', '👎')
    ->query('Спасибо за оценку!')
    ->text("Жаль, что не понравилось...");

$bot->onBotCommand('vote', '/vote')
    ->text("Нравится ли тебе этот бот?")
    ->inlineKbd([['like', 'dislike']]);

$bot->run();

Больше примеров

В документации для каждого метода есть примеры его использования.

Опубликовано под лицензией MIT.