Шаблон файла
package Button_name; use strict; use warnings FATAL => 'all'; #********************************************************** =head2 new($Botapi) =cut #********************************************************** sub new { my $class = shift; my ($db, $admin, $conf, $bot) = @_; my $self = { db => $db, admin => $admin, conf => $conf, bot => $bot, }; bless($self, $class); return $self; } #********************************************************** =head2 btn_name() =cut #********************************************************** sub btn_name { return "Название кнопки"; } #********************************************************** =head2 click() =cut #********************************************************** sub click { my $self = shift; my ($attr) = @_; # Что-то делаем по нажатию кнопки. Например отправляем "Привет". $self->{bot}->send_message({ text => "Привет", }); return 1; } 1;
Отправка сообщения
#Создаем текст сообщения, для кавычек обязательно тройное экранирование my $message = "Пример сообщения\n"; $message .= "<b>Жирный текст</b>\n"; $message .= "<a href=\\\"google.com\\\">Пример ссылки</a>";#Отправляем сообщение$self->{bot}->send_message({ text => $message, parse_mode => 'HTML' });
Отправка сообщения с встроеной кнопкой
$self->{bot}->send_message({ text => "Текст сообщения", reply_markup => { inline_keyboard => [[{ text => "Кнопка в сообщении", callback_data => "button_name&fn_name" }]], } });
Отправка сообщения с ссылкой
$self->{bot}->send_message({ text => "Текст сообщения", reply_markup => { inline_keyboard => [[{ text => "Кнопка с ссылкой", url => "http://abills.net.ua" }]], } });
Отправка сообщения с заменой клавиатуры (многоуровневая операция)
# Внимание! Для использование многоуровневых операций необходимо полностью понимать что это такое. # Иначе вы рискуете сделать бота полностью неработоспособным. $self->{bot}->send_message({ text => 'Вы на втором шаге какой-то операции.\nОтправьте текст или нажмите <b>Отменить</b>', reply_markup => { keyboard => [[{ text => "Отменить", }]], resize_keyboard => "true", }, parse_mode => 'HTML' }); # Запись в базу о том, что пользователь находится на втором шаге операции. # При любом его действии будет вызываться &Button_name::fn_name # Не забудьте удалить после завершения операции. $self->{bot_db}->add({ UID => $self->{bot}->{uid}, BUTTON => "Button_name", FN => "fn_name", ARGS => "дополнительные аргументы", });