Child pages
  • Создание кнопок для бота

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageperl
titleШаблон файла
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;

...

Code Block
languageperl
titleОтправка сообщения с встроеной кнопкой
$self->{bot}->send_message({
  text => "Текст сообщения",
  reply_markup => {
    inline_keyboard => [[{
      text          => "Кнопка в сообщении",
      callback_data => "button_name&fn_name"
    }]],
  }
});

# После нажатия этой кнопки бот запустит функцию fn_name из файла button_name.


Code Block
languageperl
titleОтправка сообщения с ссылкой
$self->{bot}->send_message({
  text => "Текст сообщения",
  reply_markup => {
    inline_keyboard => [[{
      text => "Кнопка с ссылкой",
      url  => "http://abills.net.ua"
    }]],
  }
});

...