Rdno бот в Телеграмме команды

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

В этой инструкции опишем процесс создания бота в Telegram на Python . В качестве примера создадим Telegram-бот компании Timeweb Cloud, который будет приветствовать пользователя и предлагать ему перейти на сайт компании.

Как создать бота в Telegram на Python пошагово

Шаг 1. Регистрация бота в BotFather

После нажмите кнопку «Запустить» в нижней части окна и выберите в открывшемся списке команду /newbot . Бот предложит указать имя создаваемого бота. В нашем случае укажем TimewebCloudBot, и его же продублируем в качестве короткого имени.

После этого бот будет создан.

Как легко заработать рдно? *Заработала 10к *

Надежно сохраните токен бота — в будущем он понадобится для авторизации и работы с ботом.

Шаг 2. Подготовка необходимых компонентов

Переходим к подготовке необходимых компонентов. На вашем компьютере должен быть установлен Python и среда разработки (в нашем случае это PyCharm).

Установить Python на Windows 10 можно по нашей инструкции, а после скачать PyCharm с сайта разработчика и установить его.

В качестве библиотеки мы будем использовать pyTelegramBotAPI . Установить ее можно, с помощью следующей команды:

pip install pyTelegramBotAPI

Все необходимые компоненты установлены. Переходим к следующему шагу.

Шаг 3. Написание кода

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

import telebot

botTimeWeb = telebot.TeleBot(‘Уникальный токен’)

from telebot import types

Вместо Уникальный токен укажите токен, который вы получили при регистрации бота. Кавычки необходимо сохранить.

Теперь реализуем так называемые обработчики сообщений. Они отвечают за фильтрацию входящих сообщений бота и вызов указанной функции для этих сообщений.

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

Разберем написанный выше код по порядку.

Первые две строчки объявляют метод обработки входящих сообщений. В нашем случае в качестве параметра передается команда /start .

Далее объявляется переменная first_mess , хранящая указанную строку. Она будет отображаться пользователю после вызова команды /start . Здесь также используется объект Message , необходимый для определения имени ( first_name ) и фамилии ( last_name ) пользователя.

Далее следуют 3 строчки кода, отвечающие за добавление кнопки, которая в будущем будет перенаправлять пользователя на следующее сообщение. Тип данной кнопки — Inline. Это значит, что такая кнопка будет отображаться прямо под сообщением. Для ее создания необходимо использовать метод InlineKeyboardButton . Параметр text отвечает за имя кнопки, а callback_data — за возвращаемую строку при нажатии. Второй параметр понадобится для реализации функционала кнопки.

RDNO бот | что это? как этим пользоваться? #хехекек

И наконец, добавляется метод send_message , необходимый для отправки сообщения пользователю. У него указаны 4 параметра:

  • message.chat.id отвечает за синхронизацию сообщения с чатом бота;
  • first_mess передает ранее указанное сообщение;
  • parse_mode необходим для указания режима разметки сообщений;
  • reply_markup отвечает за добавление созданной кнопки.

Сейчас кнопка создана, но при ее нажатии ничего не происходит. Необходимо реализовать её функционал. Для этого используем следующий фрагмент кода:

В начале объявляется метод для обработки запросов обратного вызова. Выполняется проверка на соответствие строки, указанной после == и возвращенной после нажатия кнопки. Так как ранее мы указали значение параметра callback_data = ‘yes’ , то проверка пройдет успешно.

После проверки реализован функционал кнопки. Переменная second_mess хранит текст ответного сообщения. А далее описана реализация кнопки, которая хранит ссылку на сайт компании Timeweb Cloud.

Последним шагом будет указать боту на то, что обработка команды закончена. Для этого указываем команду answer_callback_query .

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

botTimeWeb.infinity_polling()

Бот создан. Сохраните файл с кодом и переходите к его запуску.

Шаг 4. Запуск бота

Откройте терминал и выполните запуск проекта:

python main.py

Теперь бот запущен, можно переходить в Telegram и тестировать его.

Для дополнительной безопасности и стабильности рекомендуется запускать бота на виртуальном сервере. Арендовать надежный облачный сервер можно на Timeweb Cloud .

Еще по теме:  Что делать если вылетает Телеграмм

Шаг 5. Тестирование бота

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

Для начала работы нажмем «Запустить» внизу экрана.

Бот обработает команду и выведет приветственное сообщение.

Для продолжения работы с ботом нажмем кнопку под сообщением.

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

В ответ на нажатие кнопки бот предложит перейти по ссылке. Нажимаем «Перейти» и переходим на сайт компании.

Заключение

Как отписаться от ботов в Телеграмме

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

Кто такие боты и что они умеют в Телеграмм?

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

Бот

В Телеграмм появились боты – роботы с определёнными возможностями. Они уже умеют самостоятельно отвечать на простые вопросы, искать информацию и файлы в Интернете. А также:

Меню бота

  • Подключаться к другим сервисам и выполнять определённые операции;
  • Боты могут по желанию подписчика находить людей для общения и искать о них информацию;

Бот МЧС

  • Автоматические программы научились самостоятельно выполнять различные задачи, такие как обрезать картинку, сделать из песни рингтон и т.д.;
  • В общем боты способны практически на всё, что касается информации.
  • Ботов может создать любой пользователь Телеграмм. Новый бот может отвечать на вопросы в группах. Для того чтобы он получил уникальные возможности, создатель должен уметь программировать. Из него может получиться хороший помощник, который будет привлекать новых подписчиков, развлекать их и давать рекомендации.

    Как отписаться от бота

    Мобильное приложение Телеграмм отличается от других уникальностью взаимодействия с пользователем. С ботом можно один раз пообщаться, чтобы он появился в ленте. Чат с ним начинается с кнопки «Старт». После чего программа может отправлять новости из каналов в окне уведомлений. Некоторым ботам нужно писать эту команду в переписке.

    Если вы больше не хотите получать уведомления от бота, напишите в чате с ним новую команду: /stop. Бот прочтёт её и больше не будет ничего предлагать. Для возобновления чата с ним снова напишите команду старт.

    Поиск информации

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

    Чат с ботом

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

    Как забанить бота в Телеграмм

    Приложение позволяет отправлять в чёрный список пользователей, каналы, группы и ботов. Если они игнорируют команду стоп, то могут быть остановлены через блокировку. Для этого необходимо перейти на страницу с ботом. Его имя находится в списке контактов вашего профиля, если вы подписаны на бота.

    Меню Телеграмм

      Нажмите на три точки в углу справа;

    Заблокировать

  • На экране вверху появится выпадающее меню;
  • В нём выберите кнопку с названием «Заблокировать».
  • Такой подход применяется к контактам. Этим инструментом можно останавливать любой спам в Телеграмм. Блокируйте людей, которые пытаются навязать рекламу, постоянно приглашают в группы или неприятных знакомых. Внизу чата с человеком появится уведомление о том, что вы его заблокировали.

    Разблокировать

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

    Как отправить жалобу в Телеграмме

    Можно пожаловаться на бота или сообщество в Телеграмме, чтобы администрация приняла меры и остановила нежелательные сообщения. Эта функция работает не сразу, как чёрный список. Если на канал или бота пожалуется сразу несколько пользователей, в этом случае её рассмотрят и примут меры. Кнопку пожаловаться можно найти в меню сообщества или бота в Телеграмм.

    К обычным пользователям функция не применяется. Вместо неё используйте кнопку «Блокировать» для отправки его в свой чёрный список. Для помощи с приложением Телеграмм существуют официальные и неофициальные боты поддержки.

    Пожаловаться

    Вопросы по работе приложения и определённых его функциях можно задавать роботу. В поиске найдите одного из них по ключевому слову «Help». С ним придётся вступить в разговор, соответственно вы снова будете подписаны на бота. Но теперь у вас есть инструкция, как от него избавиться. Поэтому можно без страха нажимать кнопку «Старт» и задавать любой вопрос.

    Еще по теме:  Бот для отправви сообщений заблокировавшим аккауньам телега

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

    Видеоинструкция

    Если вам что-либо было непонятно в информации по отписке от бота, посмотрите видео о Телеграмм, в котором показано, как это сделать.

    Источник: lifehacki.ru

    Как написать Telegram бота: практическое руководство

    6 Апрель 2016 , Python, 454175 просмотров, How To Create a Telegram Bot Using Python

    В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных «фишек» Telegram является его якобы защищённость — по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом.

    Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.

    В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы «запилим» полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории.

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

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

    Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:

    • Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно тут
    • Добавляем к себе в контакт-лист бота с именем BotFather
    • Запускаем процедуру «общения» с ботом нажатием кнопки Start. Далее перед нами предстанет список команд точно как на скриншоте.
    • Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot. Например, DjangoBot или Django_bot.

    Telegram bot

    • Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю 🙂

    Python Planet бот

    После создания бота, обратите внимание на строку с текстом:

    Use this token to access the HTTP API:

    За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:

    • Присвоить боту описание
    • Установить аватар
    • Поменять token

    и так далее. Полное описание доступных команд можно увидеть на первом скриншоте.

    Приступаем к кодированию

    Как я ранее уже упоминал, мы будем писать веб-приложение на Django. Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.

    • Использование вызова API метода getUpdates
    • Установка Webhook

    Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook.

    Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить валидный бесплатный SSL сертификат от Let’s Encrypt.

    Подробнее о getUpdates и setWebhook можно почитать соответственно здесь и тут.

    Итак, вернёмся к python библиотеке для работы с Telegram — telepot. На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:

    pip install telepot

    Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:

    Еще по теме:  Как разблокировать человека в Телеграм канале в комментариях

    import telepot token = ‘123456’ TelegramBot = telepot.Bot(token) print TelegramBot.getMe()

    Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:

    Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.

    Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start

    Telegram Bot

    TelegramBot.getUpdates() [, u’message_id’: 1, u’chat’: >, u’update_id’: 649179764>]

    Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update. Внутри Update находится объект Message.

    Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.

    TelegramBot.getUpdates(649179764+1) [, u’message_id’: 13, u’chat’: >, u’update_id’: 649179765>]

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

    Простая функция парсинга RSS фида Planet Python выглядит вот так:

    # -*- coding: utf8 -*- from xml.etree import cElementTree import requests def parse_planetpy_rss(): «»»Parses first 10 items from http://planetpython.org/rss20.xml «»» response = requests.get(‘http://planetpython.org/rss20.xml’) parsed_xml = cElementTree.fromstring(response.content) items = [] for node in parsed_xml.iter(): if node.tag == ‘item’: item = <> for item_node in list(node): if item_node.tag == ‘title’: item[‘title’] = item_node.text if item_node.tag == ‘link’: item[‘link’] = item_node.text items.append(item) return items[:10]

    Здесь я использую python библиотеку requests для работы с HTTP в самом простейшем варианте без обработки ошибок. Django «вьюшка» выглядит следующим образом:

    CommandReceiveView ждёт POST запрос на себя, парсит его и отвечает исходя из заданной команды. Полноценное Django приложение можно найти по этой ссылке. Стоит отметить в коде использование ещё одного API вызова — sendMessage. Этот метод отправляет сообщение заданному пользователю, используя при этом chat_id и сам текст сообщения.

    Chat_id — это уникальный идентификатор чата между пользователем и ботом (его идентификатор есть в ответе на запрос getUpdates). У Telegram ботов есть одно ограничение, они не могут посылать сообщения пользователям, которые предварительно не инициировали общение с ним. По-видимому это сделано дабы избежать массового создания спам-ботов.

    Я предполагаю, что вы уже клонировали мой репозиторий, настроили окружение и установили все необходимые зависимости: Django, requests, telepot. Если же вы не знаете как это сделать, то совсем скоро я напишу цикл статей о разработке веб-приложений на Python, включая разбор экосистемы: разработка, настройка, деплой. Если вам это интересно, то отпишитесь, пожалуйста, в комментариях к этой статье. Хочется получить обратную связь 🙂

    Итак, веб-приложение на Django запущено. Как же начать тестировать бота? А всё очень просто — необходимо симулировать действия Telegram сервиса. Для этого нам понадобится HTTP клиент и тело запроса. В качестве HTTP клиента я часто использую Chrome плагин под названием Postman, а тело запроса мы возьмём напрямую из данных, полученных с помощью API вызова getUpdates.

    После запуска runserver, URL на который необходимо посылать запрос выглядит следующим образом:

    http://127.0.0.1:8000/planet/b. BOT_TOKEN/

    где BOT_TOKEN — это токен нашего бота. Смотрим скриншот:

    Postman REST Client

    telegram-bot-postman

    А давайте-ка отправим команду feed для получения списка новостей из Planet Python:

    Postman и TelegramPostman и Telegram

    На скриншотах видно, что бот адекватно отреагировал на нашу команду вывести список последних 10 постов.

    Следующим шагом является деплой нашего Django приложения на удалённый хост и последующий вызов метода setWebhook для передачи URL на который будет посылаться POST запрос от сервиса Telegram каждый раз при поступлении команд боту от пользователей. Об этом мы поговорим в следующей заметке.

    Присоединяйтесь к рассылке

    Понравился контент? Пожалуйста, подпишись на рассылку.

    Интересные записи:

    • FastAPI, asyncio и multiprocessing
    • Celery: начинаем правильно
    • Django Channels: работа с WebSocket и не только
    • Обзор Python 3.9
    • Работа с MySQL в Python
    • Почему Python?
    • Руководство по работе с HTTP в Python. Библиотека requests
    • Pyenv: удобный менеджер версий python
    • Введение в logging на Python
    • Что нового появилось в Django Channels?
    • Введение в pandas: анализ данных на Python
    • Разворачиваем Django приложение в production на примере Telegram бота
    • Python-RQ: очередь задач на базе Redis
    • Авторизация через Telegram в Django и Python
    • Работа с PostgreSQL в Python
    • Django, RQ и FakeRedis
    • Итоги первой встречи Python программистов в Алматы
    • Обзор Python 3.8
    • Участие в подкасте TalkPython
    • Строим Data Pipeline на Python и Luigi
    • Видео презентации ETL на Python

    Источник: khashtamov.com

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