Ссылка на телеграм бот с параметром

Инструкция: Как создавать ботов в Telegram

24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

Рассмотрим API на примере создания тривиального бота:

1. Регистрация

Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.

Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.

Не забудьте проверить полученный токен с помощью ссылки /getMe»>api.telegram.org/bot /getMe, говорят, не всегда работает с первого раза.

2. Программирование

Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.

Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)

Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.

Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.

Собственно, её код довольно прост:

Теперь, когда вся логика бота описана можно начать придумывать ему команды.

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.

Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.

После этого можно добавить какую-нибудь свою команду, например, /base64:

Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.

UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/ ) (https://core.telegram.org/bots#privacy-mode)

Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.

Для начала в Handler добавляем обработчик:

А потом в список команд добавляем псевдо-речь:

Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.

Для примера расширим словарь RESPONSES:

И будем отлавливать текст :

Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

И все, теперь бот будет время от времени присылать стикер вместо времени:

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.

7. Ограничения

К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.

К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.

UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).

Источник

Боты: информация для разработчиков

Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Пользователи могут взаимодействовать с ботами при помощи сообщений, отправляемых через обычные или групповые чаты. Логика бота контролируется при помощи HTTPS запросов к нашему API для ботов.

Общие сведения

Что могут делать боты?

Вот несколько примеров использования ботов:

Как работают боты?

Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.

Самое интересное в роботах это то, что для их создания вам не нужно изучать низкоуровневые методы работы с MTProto и шифрованием — общение с роботом организовано при помощи обычного HTTPS интерфейса с упрощёнными методами Telegram API. Мы назвали его Bot API.

Рекомендуем также ознакомиться с подробным описанием Bot API.

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Как создать бота?

Для этого есть. Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.

Чем бот отличается от обычного аккаунта?

Суперспособности

У роботов Telegram есть много уникальных возможностей — например, кастомизированные клавиатуры, дополнительные интерфейсы для команд по умолчанию, внешнее связывание и специальные режимы приватности для групп.

Инлайн-режим

Пользователи могут общаться с вашим ботом напрямую из поля ввода сообщения — из любого чата или группы. Для этого нужно всего лишь набрать имя пользователя вашего бота и запрос для поиска. Получив запрос, бот может возвратить какие-либо результаты. Как только пользователь нажмёт на один из них, он сразу же отправится в чат. Таким образом можно запрашивать контент от бота в чатах, группах или каналах.

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:

Клавиатуры

Одна из самых необычных возможностей Bot API — кастомизированные клавиатуры. При передаче сервером ответа есть возможность передать команду на отображение специальной клавиатуры с предустановленными вариантами ответа (см. ReplyKeyboardMarkup). Клиент Telegram, получив сообщение, отобразит пользователю вашу клавиатуру. Нажатие на клавишу сразу же отправит на сервер соответствующую команду. Таким образом можно значительно упростить взаимодействие робота с пользователем. На данный момент для отображения на клавише могут использоваться эмодзи и текст. Вот несколько примеров таких клавиатур:

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметромСсылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

За более подробной информацией обращайтесь к описанию метода sendMessage.

Команды

Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:

Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:

Сообщения, начинающиеся с косой черты, будут всегда доставляться боту (точно также, как и при ответе на его сообщения и на @упоминания бота в чате). Приложения Telegram будут:

Если в группе есть несколько ботов, вы можете дописать после команды имя бота, чтобы избежать коллизий в общих командах:

Это происходит автоматически, если вы выбираете команду из списка доступных.

Глобальные команды

Чтобы пользователям было проще работать с ботами, мы просим всех разработчиков реализовывать поддержку нескольких простых команд. В интерфейсе приложений Telegram будут ярлыки (быстрые ссылки) для этих команд.

При попытке начать общение с роботом, пользователь увидит кнопку СТАРТ. На странице профиля бота также будут доступны ссылки Помощь и Настройки.

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Режим приватности

Ботов часто добавляют в группы, чтобы получать различную информацию — новости, уведомления и т.д. Однако, при добавлении бота вы наверняка спрашивали себя: «А что если этот маленький засранец пересылает всю групповую переписку куда-то “налево”?» Именно поэтому у роботов есть режимы приватности.

Робот с включенным режимом приватности не будет получать всех сообщений, а только сообщения, удовлетворяющие этим условиям:

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

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

Внешнее связывание

Боты имеют механизм внешнего связывания, которые позволяет передать дополнительные параметры при запуске. Например, для передачи авторизационного токена пользователя, чтобы соединить его аккаунт с каким-либо внешним сервисом.

Переход по ссылке с параметром start начнет чат с ботом, при этом в поле ввода текста будет отображаться кнопка СТАРТ. При переходе по ссылке с параметром startgroup пользователю будет предложено добавить бота в одну из доступных групп. Как только пользователь подтвердит своё действие (нажмёт на кнопку СТАРТ или выберет группу), бот получит сообщение следующего формата:

Пример реализации внешнего связывания

BotFather

BotFather — один бот, чтобы править всеми. При помощи него меняются настройки у существующих ботов и создаются новые.

Создание бота

Имя (name) будет отображаться в контактах и чатах.

Username — короткое имя на латинице, которое используется для упоминаний бота и в ссылках на профиль в telegram.me. Username должен состоять из букв латинского алфавита, подчёркиваний и цифр и быть длиной от 5 до 32 символов. Также имя пользователя обязательно должно заканчиваться на «bot», например: «tetris_bot» или «TetrisBot».

Создание токена

Настройки

Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.

Сайт про Telegram на русском (неофициальный).

Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.

Источник

Создание и хостинг телеграм бота. От А до Я

Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

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

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.

BotFather

Для начала нам надо зарегистрировать нашего бота в Telegram. Для этого:

В поиске вбиваем @BotFather и переходим в диалог с Отцом Ботов.

Пишем /newbot. Указываем имя бота (то, что отображается в диалогах). Указываем его логин, по которому его можно булет найти.

P.S. Оно должно заканчиваться на Bot/bot

Вот. Нам дали API ключ и ссылку на бота. Желательно сохранить API ключ и перейти в диалог с ботом, чтобы потом не копаться в переписке с BotFather

Дальше добавим ему пару команд: пропишем /setcommands и одним сообщением, т.к. /setcommands не добавляет команды, а задаёт их с нуля, пошлём ему команды.

На этом работа с BotFather закончилась, перейдём к следующей части.

Установка и настройка pipenv. Первый запуск.

Для начала создадим файл, в котором будет основной код бота bot.py. Если бот большой, то сразу создавайте файлы, куда вы вынесете функции, классы и т.д, иначе читаемость кода стремится к нулю. Я добавлю parser.py

Установим pipenv, если его конечно ещё нет.

Установим pipenv в папку проекта.

Установим интересующие нас библиотеки. Я буду работать с PyTelegramBotAPI. Также для парсинга добавим BeautifulSoup4.

Начинаем писать код!

Открываем bot.py, импортируем библиотеки и создаём главные переменные.

Запустим бота. Посмотри наличие ошибок.

Если ошибок не появилось, то продолжим.

Хэндлеры. Отвечаем на команды и сообщения

Пришло время научить бота отвечать нам. Возможно даже сделать его ответы полезными.

Основы взаимодействия. Ответ на команды

Для взаимодействия с пользователем, т.е. для ответа на его команды и сообщения используются хэндлеры.

Начнём с самого простого: ответим на команды /start и /go

Сейчас разберёмся что это и как это работает. Передаём в message_handler параметр commands равный массиву со строками — командами, на которые он будет отвечать описанным ниже образом. (На все эти команды он ответит одинаково). Далее используем send_message, в него записываем id чата (его можно достать из message.chat.id), в который отправить сообщение и, собственно, само сообщение. Нельзя забыть написать bot.polling() в конце кода, иначе бот сразу же выключиться. Почему так мы узнаем позже.

Теперь можно запустить бота и написать ему /start или /go и он ответит.

P.S. Сообщение может быть не только строкой, а, в принципе, чем угодно.

Это json объект, хранящий информацию об отправителе, чате, и самом сообщении.

Основы взаимодействия. Ответ на текстовые сообщения.

Теперь обработаем текстовые сообщения бота. Самое важное что нам нужно знать это то, что текст сообщения храниться в message.text и то, что, чтобы обрабатывать текст в message_handler нужно передавать content_types=[‘text’].

Добавим вот такой код.

Тут мы довабили пару переменных: вынесли текст сообщения (в нижнем регистре, чтобы не было лишних проблем с теми кто пишет капсом, заборчиком и т.д.) в переменную text, вынесли message.chat.id в отдельную переменную, чтобы каждый раз не обращаться к message. Также мы построили небольшое ветвление, для ответа на определённые сообщения, а также ответ на случай непонятного боту сообщения.

Основы взаимодействия. Ответ на картинки, документы, аудио и прочие.

Для ответа на картинки, стикеры, документы, аудио и т.д. нужно всего лишь поменять content_types=[‘text’].

Рассмотрим пример с картинкой, добавив этот код.

text, audio, document, photo, sticker, video, video_note, voice, location, contact, new_chat_members, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message

Строим цепочку ответов.

Пришло время закончить с элементарными действиями и начать что-то серьёзное. Попробуем построить цепочку ответов. Для этого нам понадобиться register_next_step_handler(). Создадим простой пример, на котором и разберёмся как работает register_next_step_handler().

И так, в первой функции добавился bot.register_next_step_handler(msg, askAge), в него мы передаём сообщение, которые хотим послать, и следующий щаг, к которому перейти после ответа пользователя.

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

Но, есть тут проблема. Можно повторно вызвать команду /go или /start, и начнётся бардак.

Пофиксить это несложно, добавим переменную для проверки состояния выполнения скрипта.

С построением простых цепочек мы разобрались, пойдём дальше.

Добавляем парсер в цепочку.

Для начала нужен сам парсер. Обратим внимание на то, что во вкладках «Лучшее» и «Всё подряд» есть дополнительные фильтры: сутки, неделя, месяц и ≥10, ≥25, ≥50, ≥100 соответственно.
Парсер конечно можно написать и в 1 функцию, но я разобью на 2, так будет проще читать код.

По итогу парсер возвращает нам строку с заголовками статей, основываясь на наших запросах.
Пробуем, используя полученные знания, написать бота связанного с парсером. Я решил создать отдельный класс (это скорее всего неправильный метод, но это уже относится к питону, а не к основной теме статьи), и в объекте этого класса хранить изменяемые данные.

Теория. Методы взаимодействия с ботом.

Мы используем long polling для получения данных о сообщениях от бота.

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

Также в дополнительных материалах будут ссылки на всё, что использовалось и о чём говорилось.

Маркапы. Добавляем клавиатуры для быстрого ответа.

Наконец основной код дописан. Теперь можно передохнуть и написать маркапы. Я думаю вы неоднократно видели их, но всё же, приложу скриншот. [SCREENSHOT]

Я выведу маркапы в отдельный файл — markups.py.

В параметры маркапа указываем ширину строки и изменение размеров кнопок, иначе они огромны.

Применим полученные знания к нашему боту.

Ура! С кодом впринципе разобрались. Теперь самое важное — деплоинг бота не хероку.

Деплоим бота на Heroku.

Для начала надо зарегистрироваться на Хероку и на Гитхабе.

Теперь создаём репозиторий на гитхабе. (нажмите плюсик слева от вашего аватара)
Сейчас нам нужен Procfile (Procfile.windows для windows). Создаём его и записываем в него bot: python3 bot.py

Теперь удаляем TOKEN из bot.py, здесь он не нужен, ведь мы будем загружать этот файл на гитхаб. Через тот же терминале, что использовали для запуска бота, заливаем файлы на гитхаб. (Предворительно удалите папку __pycache__).

Гит просит логин и пароль, спокойно вводим и преступаем к деплоингу бота на хероку. Пишем всё в том же терминале.

Теперь возвращаем TOKEN в bot.py, здесь он нужен, ведь мы будем загружать этот файл на хероку.

Поздравляю!

Работа окончена, бот работает удалённо.

Ссылки

Заключение

Если кому-то было интересно, то цель написания статьи выполнена. Если кому-то хочется увидеть статью про более сложного бота (с вебхуками, подключенной БД с настройками пользователей и т.д.) — пишите.

Источник

Telegram: бот, ссылки

Возможности телеграмм бота htmlweb_bot

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Наш портал позволяет обращаться к некоторым сервисам используя телеграмм бота: @htmlweb_bot

Актуальный список команд можно получить отправив боту /help

Уведомление себя на телеграмм

Если вы хотите использовать телеграм для автоматизированного оповещения себя, добавьте себе бота @htmlweb_bot, залогиньтесь в нем командой /login и вызывайте API:

Параметры можно передавать, как с помощью GET, так и с помощью POST запроса.

Дополнительный необязательный параметр формат сообщения (html|text), по умолчанию html:
format = text

В формате html разрешены только теги a, b, strong, i, em, u, ins, s, strike, del, code, pre, остальные вырезаются, т.к. не поддерживаются телеграм.

Так же доступны все опции сообщений: parse_mode, disable_web_page_preview, disable_notification, reply_to_message_id, reply_markup. Описание их на официальном сайте: telegram.org

Удобно оповещать себя о проблемах на сайте, обращениях пользователей и т.п. Данный сервис абсолютно бесплатный и без ограничений. Отправленное сообщение нигде не сохраняется.

Пример

Пересылка СМС на телеграмм

Вы можете настроить пересылку всех СМС на ваш телеграм, для этого:

Ссылки в телеграмм

Чтобы не искать, собрал в одном месте как формировать ссылки на различные действия в телеграмм:

Ссылка на отправку сообщения пользователю телеграмм:
https://t.me/ПРОФИЛЬ
Профиль нашей группы

Ссылка на отправку сообщения пользователю телеграмм:
tg://msg?text=ТЕКСТ&to=ТЕЛЕФОН
Отправить сообщение в группу ИТишников
Параметр ТЕЛЕФОН сработает, если абонент есть в вашем справочнике.

Начать диалог с пользователем или ботом телеграмм:
tg://resolve?domain=USERNAME
Добавить группу IT_ROSTOV в Телеграмм

Запустить бота телеграмм с передачей параметров:
https://t.me/htmlweb_bot?start=СТРОКА_ПАРАМЕТРОВ

Наша группа в телеграмм

Наша группа в телеграмм для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov.

Источник

Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном

В последнее время я сделал настолько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.

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

Также стоит отметить, что хостинг в этом примере бесплатный, но его хватает для разумной нагрузки.

А еще сразу скажу, что далее будет все на питоне. Вот. Сказал. Не буду больше ходить вокруг да около, у нас всего 5 минут (помните, да?). Приступим!

Пошаговая инструкция

1) Создаем репозиторий на гитхабе из моего шаблона

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

2) Регистрируемся на Heroku

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

3) Создаем новое приложение

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

4) Привязываем наш репозиторий к проекту на Heroku

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

5) Настраиваем автоматический deployment

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

6) Смотрим на адрес, где будет висеть наш бот

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

7) Настраиваем переменные среды

VALUE

Рандомная строка из букв для безопастности

Еще одна рандомная строка из букв для безопастности

Адрес полученный в пункте 6 (например fancy-panda.herokuapp.com). Обратите внимание на формат!

Токен для бота, куда будут отправляться логи (оставьте пустым, если хотите отключить логирование в телеграм)

user_id, куда будут отправляться логи (получить в боте @userinfobot)

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

8) Собираем наше приложение и ждем пока оно запустится

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

9) Заходим по адресу из пункта 6 и добавляем к ссылке пароль. Получиться что-то такое: fancy-panda.herokuapp.com/?password=

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

10) Устанавливаем webhook, переходя по ссылке на подобие fancy-panda.herokuapp.com/set_webhook?password=

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Тестируем

Теперь, когда мы закончили все настраивать, пора посмотреть, что же мы «натворили».

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметромПример работы из коробки Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметромПример работы логирования

Добавляем функционал

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

Думаю, дальше ограничивает вас только воображение. (ну почти)

Применение в проектах

Все любят, когда есть примеры работы. На основе этого шаблона я сделал бота wifi_qr_bot, который генерирует QR-коды для подключения к WiFi. Это упрощает жизнь, ведь пароль у вас длинный (безопасность, все дела), а вводить его на каждом новом устройстве вам лень.

Ссылка на телеграм бот с параметром. Смотреть фото Ссылка на телеграм бот с параметром. Смотреть картинку Ссылка на телеграм бот с параметром. Картинка про Ссылка на телеграм бот с параметром. Фото Ссылка на телеграм бот с параметром

Выводы

Вот мы и сделали нашего бота, который хостится в облаке. Он уже многое умеет в плане логирования. Для логирования я написал отдельную библиотеку, tg-logger. Если интересно, как она работает, то потыкайте в демо бота. Если все еще интересно, прочитайте мою статью. Такие пироги с котятками.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *