Как в Телеграм боте сделать текст с кнопкой ссылкой

В своем телеграм-канале я иногда делаю анонсы некоторых мероприятий или прошу своих читателей пройти опрос. При этом предлагаю им перейти на сторонние ресурсы. Это можно сделать как через размещение ссылки в тексте пост. О том, как превратить обычные слова в тексте поста в телеграм-канале в гиперссылки, можете прочитать здесь. Второй вариант – разметить прямо под постом кнопки, при нажатии на которые ваши читатели могут открыть другой чат, канал или сайт.

Из этого поста вы научитесь добавлять такие кнопки-ссылки под своими постами. Но сначала нужно правильно настроить ваш канал. Если вы этого еще не сделали, пройдите по этой ссылке и выполните необходимые действия, а именно – подключитесь к боту ControllerBot, создайте своего бота и сделайте его администратором своего канала. Далее перейдите в чат со своим ботом и введите команду /start и следуйте инструкции ниже.

Если вы уже выполнили все действия по настройке своего бота и канала, то сразу откройте чат со своим ботом и нажмите “Создать пост”.

Как создать в Телеграмме пост с кнопкой ? / Post Bot

Вы можете добавить несколько кнопок. Если добавить названия кнопок и ссылки по одному в каждом ряду, то так они и будут отображаться – длинные кнопки под постом по порядку их ввода. Если же после ссылки указать знак вертикального слэша (|), кнопки под постом будут показываться по 3 штуки в ряд.

После нажатия на кнопку “Опубликовать” ваш пост будет опубликован сразу же. Если хотите запланировать публикацию на будущее, то прочитайте эту короткую инструкцию.

Независимый медиа-тренер и консультант, блоггер, сооснователь первой фактчек-платформы Таджикистана Factcheck.tj и блогплатфоры Blogiston.tj. Веду данный авторский проект Alifbo.Media — образовательный ресурс о новых медийных технологиях, трендах, онлайн-сервисах для подготовки мультимедийных материалов. В свободное время читаю, веду канал на Телеграм, создаю сайты, программирую.

Источник: alifbo.media

Создание простого Telegram-бота с клавиатурой и inline-кнопками [Часть 2]

Два с воловиной года назад на сайте была статья о том, как сделать телеграм-бота. Сегодня я решил немного обновить используемую библиотеку и рассмотреть уже в новой части возможность добавления в бота клавиатуры с кнопками.

Еще по теме:  Не удаляется секретный чат в Телеграмме почему проблема

И сейчас я сразу начну с написания кода, ведь по сути эта статья является продолжением предыдущей (а в ней как раз-таки можно найти подробную инструкцию по подготовке и регистрации нового бота).

Архив с обновлённой библиотекой (работает на версии php >= 8.0):

Первым делом добавляем библиотеку в свой проект и создаём php-файл, в котором, собственно, и будем писать бота. После этого необходимо подключить библиотеку:

Теперь создаём экземпляр класса Bot и инициализируем переменные $data, $chat_id и $message:

$tg = telekotBot::create( ‘токен’ ) ->initData( $data ) ->initChatId( $chat_id ) ->initMessage( $message );

Создаём массив с нужными нам кнопками:

$kbd = [ ‘inline_keyboard’ => [ [ [ ‘text’ => ‘Кнопка #1’, ‘callback_data’ => ‘one’ ], [ ‘text’ => ‘Кнопка #2’, ‘callback_data’ => ‘two’ ] ], [ [ ‘text’ => ‘ Картинка’, ‘callback_data’ => ‘img’ ] ] ] ];

Далее напишем проверку на клик по inline-кнопке. Также я добавлю блок else, в него добавим пару команд для демонстрации обновлений библиотеки:

if ( isset( $data[‘callback_query’] ) ) < // Тут будем обрабатывать нажатие на кнопки >else < // Тут будем обрабатывать обычные команды >

Стоит заметить, что всё содержимое массива $data при наличии callback_query нужно искать уже внутри callback_query ( $data[‘callback_query’][‘*а дальше уже как обычно..*’] ).

Ну, а теперь с помощью конструкции switch-case проверим, на какую из кнопок нажал юзер:

switch ( $data[‘callback_query’][‘data’] ) < case ‘one’: < $tg->sendMessage( $chat_id, ‘Вы нажали на первую кнопку’ ); break; > case ‘two’: < $tg->sendMessage( $chat_id, ‘Вы нажали на вторую кнопку’ ); break; > case ‘img’: < $tg->sendImage( ‘Держи картинку’, ‘https://proprikol.ru/wp-content/uploads/2020/10/kartinki-ozero-45.jpeg’ ); break; > >

При нажатии любую из первых двух кнопок бот просто уведомит пользователя об этом, при нажатии на третью — отправит картинку с помощью метода sendImage().

Да, как и обещал — в блок else добавляем ещё две команды:

if ( $message == ‘/привет’ ) < $tg->reply( ‘Здарова’ ); > else if ( $message == ‘/кнопки’ ) < $tg->sendMessage( $chat_id, ‘Вот твои кнопки:’, $kbd ); >

При вводе команды /кнопки — бот будет отправлять клавиатуру пользователю. При вводе команды /привет — здороваться с ним. Однако для первой команды я использовал метод reply(), а для второй — метод sendMessage(). Почему? Разница, на самом-то деле, небольшая: в метод sendMessage() необходимо передавать ID чата, а в метод reply() айди передавать не нужно (ответ придёт тому, кто написал боту). Поэтому в нашем случае, конечно же, удобнее и проще юзать reply().

Еще по теме:  Ли дон ук Телеграмм

initData( $data ) ->initChatId( $chat_id ) ->initMessage( $message ); $kbd = [ ‘inline_keyboard’ => [ [ [ ‘text’ => ‘Кнопка #1’, ‘callback_data’ => ‘one’ ], [ ‘text’ => ‘Кнопка #2’, ‘callback_data’ => ‘two’ ] ], [ [ ‘text’ => ‘ Картинка’, ‘callback_data’ => ‘img’ ] ] ] ]; if ( isset( $data[‘callback_query’] ) ) < switch ( $data[‘callback_query’][‘data’] ) < case ‘one’: < $tg->sendMessage( $chat_id, ‘Вы нажали на первую кнопку’ ); break; > case ‘two’: < $tg->sendMessage( $chat_id, ‘Вы нажали на вторую кнопку’ ); break; > case ‘img’: < $tg->sendImage( ‘Держи картинку’, ‘https://proprikol.ru/wp-content/uploads/2020/10/kartinki-ozero-45.jpeg’ ); break; > > > else < if ( $message == ‘/привет’ ) < $tg->reply( ‘Здарова’ ); > else if ( $message == ‘/кнопки’ ) < $tg->sendMessage( $chat_id, ‘Вот твои кнопки:’, $kbd ); > >

А вот, собственно, как работает бот:

  • 5id15
  • 10.08.2022
  • 7 600
  • 14
  • 9

Источник: kotoff.net

Создание Telegram бота на PHP: Кнопки в телеграм боте. Урок 6

Изучая тему «Создание Telegram бота на PHP», мы уже научились делать так, чтобы в ответ на определённое сообщение, или команду, бот отправлял в чат текстовые сообщения, файлы, картинки и видео.

Но для более лучшего взаимодействия с пользователем, иногда лучше разработать меню, или кнопки. Так человеку не придётся запоминать и набирать команды для бота вручную. Ему будет достаточно выбрать тот вариант, который его интересует и кликнуть по кнопке, или по нужному пункту меню.

В этом уроке мы рассмотрим пример создания кнопок в Telegram боте на PHP и объединим весь тот код, который изучили ранее. То есть, мы научим нашего бота отправлять пользователю текстовое сообщение, файл, картинку, или видео, если он нажмет на ту или иную кнопку.

Создание меню из кнопок в Telegram

Для создания кнопочного меню в Телеграм боте можно написать следующий код:

// кнопки меню (2 ряди по 2 кнопки) $keyboard = [ [ [‘text’ => ‘Кнопка 1’], [‘text’ => ‘Кнопка 2’], ], [ [‘text’ => ‘Кнопка 3’], [‘text’ => ‘Кнопка 4’], ] ]; $reply_markup = json_encode([«keyboard»=>$keyboard,»resize_keyboard»=>true]); // Відповідь на текстове повідомлення // Отримуємо текст, який відправив користувач Телеграм боту в месенджері if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Виводимо кнопки в Telegram, якщо користувач ввів команду /menu if (mb_stripos( $text, ‘/start’) !== false) < sendTelegram( ‘sendMessage’, [‘chat_id’=>$data[‘message’][‘chat’][‘id’], ‘text’=>’Це кнопкове Меню бота’, ‘reply_markup’=>$reply_markup ] ); exit(); > > ?>

Еще по теме:  Гиф для Телеграмма платно

Здесь, мы создаём кнопки, которые нужно показать пользователю в Телеграм, этим фрагментом кода:

// кнопки меню (2 ряди по 2 кнопки) $keyboard = [ [ [‘text’ => ‘Кнопка 1’], [‘text’ => ‘Кнопка 2’], ], [ [‘text’ => ‘Кнопка 3’], [‘text’ => ‘Кнопка 4’], ] ]; $reply_markup = json_encode([«keyboard»=>$keyboard,»resize_keyboard»=>true]);

А отправляем эти кнопки Телеграм боту, вот этой строкой кода:

‘reply_markup’=>$reply_markup

Реакция на нажатие кнопок Телеграм бота

Теперь давайте сделаем так, чтобы если человек нажмёт на кнопку, то в ответ ему приходило какое-нибудь сообщение. Например, «Вы нажали на кнопку 1», «Вы нажали на кнопку 2» и т.д.

Когда человек нажимает на кнопку №1, то боту отправляется сообщение «Кнопка 1». Соответственно, мы можем отследить текст этого сообщения и в ответ прислать свой текст (это мы уже проходили в уроке №2 «Отправка и получение сообщений»).

Пример кода

if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Виводимо кнопки в Telegram, якщо користувач ввів команду /menu if (mb_stripos( $text, ‘/start’) !== false) < sendTelegram( ‘sendMessage’, [‘chat_id’=>$data[‘message’][‘chat’][‘id’], ‘text’=>’Це кнопкове Меню бота’, ‘reply_markup’=>$reply_markup ] ); exit(); > else if (mb_stripos( $text, ‘Кнопка 1’) !== false) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Ви натиснули кнопку №1’ ) ); exit(); > >

То есть мы взяли код из нашего урока по отправке и получению сообщений Телеграм боту (см. Урок №2) и подставили его в конструкцию If…Then…Else If.

Таким же образом давайте сделаем с получением картинок, файлов и видео. Но предварительно давайте поменяем название наших кнопок на «Send text», «Send picture», «Send file» и «Send video». Так будет намного понятнее для чего предназначена каждая из этих кнопок.

Итоговый код Телеграм бота

Теперь, если пользователь нажмёт на соответствующую кнопку, то от Telegram бота он получит текстовое сообщение, файл, картинку, или видео.

То же самое будет происходить, если человек отправит текстовые сообщения боту в чате: «Send text», «Send picture», «Send file», «Send video».

Примечание.

Рейтинг
( Пока оценок нет )
Загрузка ...