Как сделать кнопки в телеграмме
NodeJS: Делаем кнопки в Telegram API (inline-keyboards)
Последнее время, я заметил, что на мой блог все чаще переходят по запросам связанными с Telegram API. Да и сам я в последнее время увлекся разработкой Telegram-ботов и NodeJS. В данной статье, я хочу рассказать о том, как добавлять inline-keybord к сообщениям. Разница между ReplyKeyboardMarkup, незначительная. Однако, в этой статьи я опишу пример использования первого варианта с inline-keyboards .
Пример данной клавиатуры, вы можете увидеть на скриншоте ниже. Данный бот публикует записи в мою группу Вконтакте с разных IT-сообществ.
Ничего сверхъестественного использовать мы не будем. Хочу отметить, что я работаю с пакетом [node-telegram-bot-api](https://github.com/yagop/node-telegram-bot-api) . И в следующих статьях, как и в предыдущей про то, как создать своего телеграм бота на node.js, мы будем использовать только этот пакет. Советую прочесть данную статью, чтобы вы могли работать с командой npm .
Первым делом, мы создаем файл server.js и устанавливаем пакет node-telegram-bot-api .
После чего, подключаем данный пакет и создаем первую команду. Если у вас еще нету своего бота, заранее создайте его.
Использовать inline-keyboards можно следующим способом:
Я не стал париться над тем, какого бота мы будем делать. В качестве примера решил написать бота для теста знаний JavaScript.
Вопросы я поместил в отдельный массив, который вы можете отредактировать сами. Отмечу, что это простой пример реализации подобного бота. Если вам понравилась идея, вы с уверенностью можете его доделать.
- title – текст вопроса
- buttons – варианты ответов (кнопки). В каждом ответе хранится свое значение, которое будет отправляться на сервер.
- right_answer – номер верного ответа.
Разъясню еще один код.
К примеру, если в вопрос по счету является 2-ым и у него 3 ответа, то варианты нужно прописывать так: 2_1, 2_2, 2_3. Можете сделать свой вариант ответа, но я решил разделять через нижнее подчеркивание.
Так же, я разработал две функции:
- getRandomQuestion() – случайный вопрос. Возвращает массив.
- newQuestion – отправляет вопрос пользователю.
Главные функции у меня уже готовы, теперь осталось добавить событие на сообщение /start_test . И еще одно событие, на получение ответа от кнопок.
И вроде все. Теперь бот будет присылать вопросы пользователю, отправив команду /start_test . При клике на кнопку, проверяется правильность варианта и отправляется новый вопрос.
Кстати, вы можете спокойно задавать свои команды. Неважно на русском или английском и не имеет разницы, имеется ли в команде слэш. Можно прописать хоть /дайка быстро мне тест/ и если такое сочетание найдено в сообщении, то выполнится функция генерации вопроса. Эти два слэша, нкжно ставить обязательно, так как это регулярное выражение
Пример нашего бота, вы можете увидеть ниже:
Ставим кнопки like, URL-кнопки в сообщениях на Telegram-канале
Недавно мы узнали как создать канал в меседжере Telegram. Вы наверное замечали что на некоторых каналах к сообщениям добавлены кнопки с ссылками, а так же смайлики, на которые можно нажать и выразить свое отношение к записи. И скорее всего задумывались как же это сделать. Ведь в стандартном наборе отправки сообщений таких функций нет. Так вот все это делается благодаря одному боту. Так вот сейчас я расскажу как подключить такого бота к себе на канал.
Создаем бота и подключаем его к своему Telegram-каналу.
Первым делом нужно создать бота, но не пугайтесь сложного тут ничего нет.
Добавляем себе в контакты бота который называется @ControllerBot Для этого в поиск вставляем название бота и Telegram находит его. Затем выбираем его и нажимаем кнопку «начать».
Далее вам нужно подключить к боту свой канал. Для этого нажимаем кнопку «Каналы» потом кнопку «Добавить новый канал». После чего вам нужно нажать кнопку «подключить новый бот»
После чего вам выдается инструкция в которой написано что нужно перейти в бот под названием @BotFather , просто нажимаете на название бота и вас перекидывает куда нужно. Снова нажимаете кнопку «Начать», затем в выпавшем списке нажимаете /newbot .
В поле ввода текста пишите название бота (можно писать на любом языке, в моем примере это testovik ) и нажимаете кнопку «отправить». Затем вам нужно придумать логин вашему боту и в конце, через нижнее подчеркивание, пишем слово bot ( testovik_bot ). Вот тут нужно писать на латинице. И снова нажимаем «отправить». Если вам выдаст сообщение, как на скриншоте, значит данное имя уже занято и нужно придумать другое (я просто дописал цифры testovik123_bot ). И снова жмем кнопку «отправить». Если данное имя не занято вам выйдет поздравление.
Часть задачи пройдена. Идем дальше
Теперь вам нужно сообщение, которое вам написал @BotFather , переслать в @ControllerBot , для этого нажимаем на сообщении правой кнопкой мыши и выбираем пункт «Переслать сообщение», в меню слева выбираем ControllerBot нажимаем на него и затем просто жмем отправить сообщение.
Смотрим что написано в сообщении. Вам нужно добавить вашего бота в администраторы вашего канала. Для этого на имени бота жмем правой кнопкой мыши и выбираем пункт «Копировать имя пользователя». Затем переходим на ваш канал, жмем на название канала и выбираем ссылку «Администраторов: 1» и нажимаем на неё.
В открывшемся окне вам нужно нажать кнопку «Добавить администратора», затем в поле ввода жмем правой кнопкой мыши и выбираем пункт «вставить». В поле поиска появится ваш созданный бот. Жмем на бота. В следующем диалоговом окне нажимаем кнопку «Да». Затем ничего не меняя нажимаем «Сохранить». Ну вот вы добавили бота в администраторы вашего канала.
Далее пишем любое сообщение на своем канале, и пересылаем его в ControllerBot . Для этого жмем правой кнопкой мыши на сообщении и выбираем пункт «переслать сообщение», выбираем в левом меню ControllerBot и нажимаем «отправить сообщение».
Ну вот и все вам выходит сообщение, что канал успешно подключен. Теперь нужно выбрать часовой пояс. для этого в поле ввода теста пишем ваш город. И нажимаем «отправить сообщение». В следующем сообщение смотрим и если все правильно жмем кнопку «Верно».
Ну вот, я могу вас поздравить, вы подключили бот к своему Telegram каналу.
Как же пользоваться созданным ботом:
На самом деле все гораздо проще чем кажется на первый взгляд. Нажимаем на кнопку с названием вашего канала,. вас перебросит прямиком в ваш бот. Нажимаем кнопку «Начать». Первым делом отправляем боту текстовое сообщение, которое вы хотите опубликовать. Для этого в поле ввода текста пишем ваше сообщение и нажимаем кнопку «отправить».
Далее прикрепляем картинку. Для этого жмем кнопку «Прикрепить фото». Нажимаем кнопочку в виде скрепки и у вас откроется проводник компьютера, ищем нужную картинку и нажимаем кнопку «Открыть», затем нажимаем «Отправить 1 фото». Ну вот мы видим что картинка прикрепилась к тексту.
Так теперь прикрепим к посту смайлики. что бы люди могли нажать на них и выразить свое мнение о посте. Для этого жмем кнопку «Добавить реакции». Выбираем какие смайлики хотим прикрепить, их должно быть не больше 6 штук . Как только выбрали смайлы жмем кнопку «Отправить». И как видим смайлы прикрепились к нашему сообщению.
Ну и осталось прикрепить кнопочки с ссылками к нашему посту. Для этого жмем кнопку «Добавить URL-кнопки». Вам тут же выходит подсказка, как нужно писать что бы появилась кнопка. В поле ввода текста пишем текст в таком формате «Название кнопки — ссылка» . (пример Мой блог — https://www.blog-maksa.ru ). Если вы хотите прикрепить несколько ссылок то вам нужно каждую ссылку делать с новой строки. Для того, чтобы курсор переместился на строку ниже жмем на клавиатуре Shift+Enter и в таком же формате вставляем еще одну ссылку. Как только вы вставили все ссылки жмем «Отправить сообщение». И сразу же видим что ссылка прикрепилась к посту.
Ну вот мы полностью составили наш пост. Осталось его опубликовать. Для этого жмем кнопку «Далее», а затем кнопку «Опубликовать». Бот у вас спрашивает «вы уверены что хотите опубликовать 1 сообщение» . Так как мы в этом уверены жмем «Опубликовать». Переходим на свой канал и видим что наше сообщение опубликовано.
Ну что вот мы и научились красиво оформлять свои сообщения в Telegram-канале.
Если вам понравилась статья поделитесь ею в своих соц. сетях и напишите комментарий.
Создания Ссылок на Пост(Сообщение). Бот №1 Проверь Сам.
Здравствуйте друзья! В продолжении статьи “Как сделать пост в Телеграмм” я обещал показать как создать ссылку для возможности поделится понравившимся постом в Телеграмм.
Как я говорил в предыдущей статье: “Можно создать ссылку и обычным способом”. Но, telegram бот для отправки сообщений , способен генерировать ссылку намного интересней и это не занимает много времени. Притом не требует дополнительных знаний.
Бот для генерации ссылок “Telegram Share Helper” – Поделиться в Telegram. После того, как мы создали пост как описано в статье “Как сделать пост в Телеграмм”, создали кнопки. Мы решили, что одна из кнопок будет называться, к примеру “Поделись ссылкой”.
Теперь в поиске Телеграмм набираем Telegram Share Helper, после этого он появляется в левом верхнем углу. Кликаем по нему.
Открывается бот генератора ссылок, и мы внимательно изучаем инструкцию. Затем внимательно повторяем все действия. Я выбираю второй вариант написания ссылки.
Поделюсь одним секретом. Мы собираемся сделать кнопку со ссылкой на пока еще не существующую статью (Она на стадии выпуска). Поэтому мы берем ссылку на последнею статью в канале и увеличиваем порядковый номер на единицу. Ссылку мы копируем в любой текстовый редактор. И в нем уже меняем порядковый номер. Пример https://t.me/Aleksandr_Chexlov/27, а ссылка на следующий пост получится https://t.me/Aleksandr_Chexlov/28.
Копируем ее, переходим на бота, вставляем ссылку и дописываем название как указано в инструкции. Нажимаем на ⩥
После этого получаем вот большую такую ссылку. Копируем ее и переходим в свой редактор постов. Соединяем телеграмм бота для постов с телеграмм ботом ссылок.
Размещаем ссылку на нужную кнопку. Нажимаем на ⩥
Получаем кнопки с переходами на сайт и возможностью поделится ссылкой в Телеграмм.
При нажатии на кнопку “Поделится ссылкой”. Меняется окно и предлагается выбрать получателя.
Выбираем получателя. Отправляем сообщение.
Видим как адресат получил сообщение где очень симпатично смотрится наша ссылка.
Источники:
https://archakov.im/post/nodejs-make-buttons-on-telegram-api.html
https://blog-maksa.ru/telegram/stavim-knopki-like-url-knopki-v-soobshheniyah-na-telegram-kanale.html
https://abch70.ru/obuchenie/bot-dlya-generatsii-ssyilok