Bot в телеграмме: ⭐ Боты Телеграм 2020 — 🥇 ТОП-100 Ботов (МЕГАподборка) – Каталог ботов Телеграмм

Содержание

Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python / Habr

Сегодня мне в голову пришла мысль: «А почему бы не написать Telegram чат-бота с ИИ, которого потом можно будет обучать?»


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

Итак, для создания Telegram чат-бота с ИИ нам потребуется:

1. API Telegram. В качестве обёртки я взял проверенную библиотеку python-telegram-bot

2. API ИИ. Выбрал я продукт от Google, а именно Dialogflow. Он предоставляет довольно-таки неплохое бесплатное API. Обёртка Dialogflow для Python

Шаг 1. Создаём бота в Telegram


Придумываем имя нашему боту и пишем @botfather. После создания бота нам придёт API токен, который желательно бы где-то сохранить, т.к. в дальнейшем он нам понадобится.

Шаг 2. Пишем основу бота


Создаём папку Bot, в которой потом создаём файл bot.py. Здесь будет код нашего бота.
Открываем консоль и переходим в директорию с файлом, устанавливаем python-telegram-bot.
pip install python-telegram-bot --upgrade

После установки мы уже можем написать «основу», которая пока что будет просто отвечать однотипными сообщениями. Импортируем необходимые модули и прописываем наш токен API:
Код настроек и импорта
# Настройки
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
updater = Updater(token='ВАШ API КЛЮЧ') # Токен API к Telegram
dispatcher = updater.dispatcher


Далее напишем 2 обработчика команд. Это callback-функции, которые будут вызываться тогда, когда будет получено обновление. Напишем две таких функции для команды /start и для обычного любого текстового сообщения. В качестве аргументов туда передаются два параметра: bot и update. Bot содержит необходимые методы для взаимодействия с API, а
update
содержит данные о пришедшем сообщении.Код callback’ов
# Обработка команд
def startCommand(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(bot, update):
    response = 'Получил Ваше сообщение: ' + update.message.text
    bot.send_message(chat_id=update.message.chat_id, text=response)


Теперь осталось лишь присвоить уведомлениям эти обработчики и начать поиск обновлений.
Делается это очень просто:Код хендлеров
# Хендлеры
start_command_handler = CommandHandler('start', startCommand)
text_message_handler = MessageHandler(Filters.text, textMessage)
# Добавляем хендлеры в диспетчер
dispatcher.add_handler(start_command_handler)
dispatcher.add_handler(text_message_handler)
# Начинаем поиск обновлений
updater.start_polling(clean=True)
# Останавливаем бота, если были нажаты Ctrl + C
updater.idle()


Итого, полная основа скрипта выглядит вот так:Код полной основы бота
# Настройки
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
updater = Updater(token='ВАШ API ТОКЕН') # Токен API к Telegram
dispatcher = updater.dispatcher
# Обработка команд
def startCommand(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(bot, update):
    response = 'Получил Ваше сообщение: ' + update.message.text
    bot.send_message(chat_id=update.message.chat_id, text=response)
# Хендлеры
start_command_handler = CommandHandler('start', startCommand)
text_message_handler = MessageHandler(Filters.text, textMessage)
# Добавляем хендлеры в диспетчер
dispatcher.add_handler(start_command_handler)
dispatcher.add_handler(text_message_handler)
# Начинаем поиск обновлений
updater.start_polling(clean=True)
# Останавливаем бота, если были нажаты Ctrl + C
updater.idle()


Теперь мы можем проверить работоспособность нашего нового бота. Вставляем на 2 строке наш API токен, сохраняем изменения, переносимся в консоль и запускаем бота:
python bot.py

После запуска пишем ему. Если всё настроено правильно, то Вы увидите вот это:

Основа бота написана, приступаем к следующему шагу!
P.s. не забывайте выключить бота, для этого вернитесь в консоль и нажмите Ctrl + C, подождите пару секунд и бот успешно завершит работу.

Шаг 3. Настройка ИИ


В первую очередь, идём и регистрируемся на Dialogflow (просто входим с помощью своего Google аккаунта). Сразу после авторизации мы попадаем в панель управления.

Жмём на кнопку Create agent и заполняем поля по усмотрению (это никакой роли не сыграет, это нужно лишь для следующего действия).

Жмём на Create и видим следующую картину:

Расскажу, почему созданный нами ранее «Агент» никакой роли не играет. Во вкладке

Intents есть «команды», по которым работает бот. Сейчас он умеет лишь отвечать на фразы типа «Привет», и если не понимает, то отвечает «Я вас не понял». Не сильно впечатляет.
После создания нашего пустого агента, у нас появилась куча других вкладок. Нам нужно нажать на Prebuilt Agents (это уже специально обученные агенты, которые имеют множество команд) и из всего представленного списка выбрать Small Talk.

Наводим на него и жмём Import. Далее ничего не меняя, жмём Ok. Агент импортировался и теперь мы можем его настроить. Для этого в левом верхнем углу жмём на шестерёнку возле Small-Talk и попадаем на страницу настроек. Теперь мы можем изменить имя агента, как захотим (я оставляю как было). Меняем часовой пояс и во вкладке

Languages проверяем, чтобы был установлен русский язык (если не установлен, то ставим).


Возвращаемся на вкладку General, спускаемся немного вниз и копируем Client access token

Теперь наш ИИ полностью настроен, можно возвращаться к боту.

Шаг 4. Собираем всё вместе


ИИ готов, основа бота готова, что дальше? Дальше нам нужно скачать обёртку API от Dialogflow для питона.
pip install apiai

Установили? Возвращаемся к нашему боту. Добавляем в нашу секцию «Настройки» импорт модулей apiai и json (нужно, чтобы в будущем разбирать json ответы от dialogflow). Теперь это выглядит вот так:
Код обновлённых настроек
# Настройки
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import apiai, json
updater = Updater(token='ВАШ API КЛЮЧ') # Токен API к Telegram
dispatcher = updater.dispatcher


Переходим к функции textMessage (которая отвечает за получение любого текстового сообщения) и посылаем полученные сообщения на сервера Dialogflow:Код отправления сообщений на Dialogflow
def textMessage(bot, update):
    request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow
    request.lang = 'ru' # На каком языке будет послан запрос
    request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота)
    request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера


Этот код будет посылать запрос к Dialogflow, но нам нужно также извлечь ответ. Дописываем парочку строк, итого textMessage выглядит вот так:Полный код функции textMessage
def textMessage(bot, update):
    request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow
    request.lang = 'ru' # На каком языке будет послан запрос
    request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота)
    request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера
    responseJson = json.loads(request.getresponse().read().decode('utf-8'))
    response = responseJson['result']['fulfillment']['speech'] # Разбираем JSON и вытаскиваем ответ
    # Если есть ответ от бота - присылаем юзеру, если нет - бот его не понял
    if response:
        bot.send_message(chat_id=update.message.chat_id, text=response)
    else:
        bot.send_message(chat_id=update.message.chat_id, text='Я Вас не совсем понял!')


Немного пояснений. С помощью
request.getresponse().read()

получается ответ от сервера, закодированный в байтах. Чтобы декодировать его, просто применяем метод
decode('utf-8')

и после этого «заворачиваем» всё в
json.loads()

чтобы распарсить json ответ.

Если ответа нет (точнее, json приходит всегда, но не всегда есть сам массив с ответом ИИ), то это означает, что Small-Talk не понял пользователя (обучением можно будет заняться позже). Поэтому если «ответа» нет, то пишем пользователю «Я Вас не совсем понял!».
Итого, полный код бота с ИИ будет выглядеть вот так:

Полный код бота с ИИ
# Настройки
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import apiai, json
updater = Updater(token='ВАШ API ТОКЕН') # Токен API к Telegram
dispatcher = updater.dispatcher
# Обработка команд
def startCommand(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(bot, update):
    request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow
    request.lang = 'ru' # На каком языке будет послан запрос
    request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота)
    request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера
    responseJson = json.loads(request.getresponse().read().decode('utf-8'))
    response = responseJson['result']['fulfillment']['speech'] # Разбираем JSON и вытаскиваем ответ
    # Если есть ответ от бота - присылаем юзеру, если нет - бот его не понял
    if response:
        bot.send_message(chat_id=update.message.chat_id, text=response)
    else:
        bot.send_message(chat_id=update.message.chat_id, text='Я Вас не совсем понял!')
# Хендлеры
start_command_handler = CommandHandler('start', startCommand)
text_message_handler = MessageHandler(Filters.text, textMessage)
# Добавляем хендлеры в диспетчер
dispatcher.add_handler(start_command_handler)
dispatcher.add_handler(text_message_handler)
# Начинаем поиск обновлений
updater.start_polling(clean=True)
# Останавливаем бота, если были нажаты Ctrl + C
updater.idle()


Сохраняем изменения, запускаем бота и идём проверять:

Вот и всё! Бот в 30 строк с ИИ написан!

Шаг 5. Заключительная часть


Думаю, Вы убедились, что написать бота с ИИ – дело 10 минут. Осталось лишь теперь его учить и учить. Делать это, кстати, можно во вкладке Training. Там можно посмотреть все сообщения, которые писались и что на них ответил бот (или не ответил). Там же его можно и обучать, говоря боту где он ответил правильно, а где нет.

Надеюсь, статья была Вам полезна, удачи в обучении!

Боты Телеграм — Инструкция и описание телеграмм ботов

Пользуясь мессенджером Телеграмм, вы, наверняка, слышали о наличии так называемых «ботов» или «bots». Так, например, в онлайн веб-версии Telegram, который вы можете найти на сайте Webtelegram.net, даже есть отдельная вкладка, предназначенная для таких ботов. Итак, в данной статье и пойдет речь о ботах в телеграмме. Мы расскажем что подразумевается под этим термином, для чего они нужны, где и как их можно найти, а также о том, как ими пользоваться.
Что такое «Бот» в Телеграмм?

Слово «бот» является сокращенным вариантом слова «робот». Итак, под «ботом» (bot), в первую очередь, подразумевается определенная программа, которая выполняет различного рода действия в автоматическом режиме, либо по команде или заданному расписанию. Таким образом, «боты» были созданы для совершения однообразных, так сказать рутинных операций, которые имитируют работу реального пользователя, но уже с более высокой скоростью и точностью. Тем самым, боты помогают людям не только экономить свои силы и время, но выполняют все работу с более лучшей и быстрой реакцией. Такого рода боты на сегодняшний день уже широко применяются во многих сферах деятельности: рекламе, в компьютерных играх, интернет-аукционах, мессенджерах и во многих других сферах.

      Мессенджер Telegram не стал исключением. Здесь под термином боты «боты» понимается специально разрабатываемые в авторежиме аккаунты, написанные при помощи @manybot или программирования на языке Pythona, которые способны выполнять команды через получение или отправку команд текстовым способом. Боты в Телеграмм создаются разработчиками через интеграцию с API, которые выдаются на @botFather. При создании бота через @Manybot программная часть файлов хранится при этом на серверах мессенджера, тогда как при собственной разработке бота для файлов Вам необходимо иметь свой сервер — хостинг.

    Проще говоря, «боты» в Telegram online — это одна из разновидностей чат-ботов. Как следует, в названиях всех ботов должно присутствовать слово «bot». По сути дела, боты – это те же пользовательские аккаунты, но которыми вместо людей управляют программы.


Для чего нужны «боты» в Телеграмм?
 
     «Боты» можно назвать маленькими умными помощниками обычных пользователей онлайн Телеграмм. Боты в мессенджере предназначены для выполнения различных действий, к примеру они могут переводить и комментировать, обучать и тестировать, играть и развлекать, искать и находить, спрашивать и отвечать, взаимодействовать с датчиками и вещами, подключенными к интернету, и многое другое. Кроме того, ботов в Телеграмм можно «Добавить в группу» (Add To Group), в которой вы является непосредственным участником, либо «Поделиться» (Share) ими со своими друзьями со списка ваших контактов.

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

Как я могу найти и начать пользоваться «Ботами» В Телеграмм?

    Пользоваться ботами в Телеграм несложно, для этого не обязательно иметь особые навыки. Для этого достаточно выбрать необходимого вам бота из специального каталога в Телеграмм и перейти по ссылке, или также можно найти необходимого вам бота в строке поиска через меню мессенджера и начать взаимодействовать с ним при помощи нажатия кнопки /start. После нажатия кнопки /start, бот пришлет вам информацию о себе, инструкции по работе с ним, а также список команд или выведет доступные команды-кнопки на экран. Так, например, в Телеграмм вы можете найти бот под названием @cbr_bot — это робот, отправляющий свежие курсы валют, установленные Центробанком России, данный бот также умеет конвертировать рубли в иностранную валюту и наоборот. Также вы можете найти бот @ytranslatebot, который может перевести ваши сообщения на любой необходимый вам язык.


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

17 Telegram-ботов для администраторов каналов и модераторов чатов

Об авторе

Дарья Калинская <a href=Дарья Калинская Выпускающий редактор Лайкни» title=»Дарья Калинская Выпускающий редактор Лайкни» />

Выпускающий редактор Лайкни

В 2019 году русскоязычный сегмент Telegram насчитывает около 87 000 каналов. И по данным исследования TGStat, 15% респондентов используют мессенджер именно для их чтения, а каждый пятый участник опроса еще и ведет свой собственный канал. Плюс – 30% опрошенных состоят в крупных групповых чатах, которые тоже кто-то модерирует.

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

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

Работа с контентом

Controller Bot

@ControllerBot

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

LikeBot

@like

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

Пример использования LikeBot

Markdown Bot

@markdownbot

Еще один бот для форматирования текстов. Позволяет менять шрифты и оформление постов в синтаксисе HTML и Markdown.

printf

@printfbot

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

VoteBot

@vote

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

Пример использования VoteBot

VoterBiBot

@VoterBiBot

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

Управление каналами и чатами

DaySandBox

@daysandbox_bot

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

Пример использования DaySandBox

GroupButler

@GroupButler_bot

Еще один бот-модератор: защищает от флуда, следует правилам, заданным администратором чата, и банит пользователей, правилам не соответствующих.

The Boterator

@boterator_bot

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

Модератор

@AngryModerBot

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

WelcomeBot+

@hellouserbot

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

Аналитика

Combot

@combot

Управляет чатом и собирает статистику активности участников и популярности чата в целом. Из особенно интересных функций – бот показывает статистику не только для чата в целом, но и для отдельных пользователей, и отмечает самых активных участников.

Пример использования Combot

Crosser Bot

@crosserBot

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

TGStat Bot

@TGStat_Bot

Бот от команды TGStat. Показывает статистику каналов (подписчики, средний охват одного поста и среднее количество просмотров в день, средний уровень вовлеченности и ИЦ), количество просмотров Telegraph-статей и отдельных постов в Telegram.

Пример использования TGStat Bot

Просто интересные боты

GmailBot

@GmailBot

Позволяет получать новые письма на Gmail в Telegram и отвечать на них прямо из мессенджера.

Perebot

@perebot

Переводит текст с английского на русский и с любого языка на английский.

Meme Creator

@CreateMeme_bot

Умеет создавать мемы и может быть полноценным аналогом веб-сервисов.

Пример использования Meme Creator

Если у вас нет своего канала или публичного чата, но вы все равно активно пользуйтесь Telegram, тогда вам понравится наша подборка из 25 Telegram-каналов по SEO и SMM. 

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

6 Апрель 2016, Python, 269355 просмотров

TelegramВ последнее время 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. В итоге после выполнения этих команд мы получим:


{u'username': u'PythonPlanetBot', u'first_name': u'Python Planet Bot', u'id': 199266571}

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

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

Telegram Bot

Выполняем код:


TelegramBot.getUpdates()
[{u'message': {u'date': 1459927254, u'text': u'/start', u'from': {u'username': u'adilkhash', u'first_name': u'Adil', u'id': 31337}, u'message_id': 1, u'chat': {u'username': u'adilkhash', u'first_name': u'Adil', u'type': u'private', u'id': 7350}}, 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': {u'date': 1459928527, u'text': u'hello bro', u'from': {u'username': u'adilkhash', u'first_name': u'Adil', u'id': 31337}, u'message_id': 13, u'chat': {u'username': u'adilkhash', u'first_name': u'Adil', u'type': u'private', u'id': 7350}}, 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 «вьюшка» выглядит следующим образом:


TOKEN = '<Our_Bot_Token>'
TelegramBot = telepot.Bot(TOKEN)
def _display_help():
    return render_to_string('help.md')
def _display_planetpy_feed():
    return render_to_string('feed.md', {'items': parse_planetpy_rss()})
class CommandReceiveView(View):
    def post(self, request, bot_token):
        if bot_token != TOKEN:
            return HttpResponseForbidden('Invalid token')
        commands = {
            '/start': _display_help,
            'help': _display_help,
            'feed': _display_planetpy_feed,
        }
        try:
            payload = json.loads(request.body.decode('utf-8'))
        except ValueError:
            return HttpResponseBadRequest('Invalid request body')
        else:
            chat_id = payload['message']['chat']['id']
            cmd = payload['message'].get('text')  # command
            func = commands.get(cmd.split()[0].lower())
            if func:
                TelegramBot.sendMessage(chat_id, func(), parse_mode='Markdown')
            else:
                TelegramBot.sendMessage(chat_id, 'I do not understand you, Sir!')
        return JsonResponse({}, status=200)
    @method_decorator(csrf_exempt)
    def dispatch(self, request, *args, **kwargs):
        return super(CommandReceiveView, self).dispatch(request, *args, **kwargs)

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 каждый раз при поступлении команд боту от пользователей. Об этом мы поговорим в следующей заметке.

Полезные боты для администраторов telegram-каналов

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

Список лучших телеграм-ботов для администраторов сообществ:

@ControllerBot — бот для администраторов каналов, позволяет форматировать текст и создавать отложенные посты, а также собирать статистику канала. Подробнее о том, как работать с этим ботом, Вы можете узнать в этой статье.

@LivegramBot — конструктор ботов для обратной связи.

@vk_bot — бот для интеграции с соцсетью ВКонтакте.

@DrWebBot — бот-антивирус, проверяет файлы и ссылки на возможные угрозы, также мониторит групповые чаты.

@PollBot — создает опросы в групповых чатах.

@GroupButler_bot — бот-модератор для групповых чатов с большим количеством настроек, способен кикать и банить за флуд.

@WelcomeAgentBot — бот для приветствия новых участников групповых чатов.

@like — официальный бот для создания inline кнопок с лайками. 

@vote — фициальный бот для создания опросов. 

@jh0ker_welcomebot — бот для создания приветствия новых участников групповых чатов.

@silent_stats_bot — бот для сбора статистики в групповых чатах.

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

@tgshare_bot — бот, создающий ссылки для inline кнопок «поделиться».

@ShortUrlBot — бот для создания коротких ссылок. 

@markdownrobot — бот для форматирования текста и отправки постов в каналы.

@karma_chat_bot — статистический бот для групповых чатов. Собирает карму по «спасибо» или «благодарю» в ответ на сообщение собеседника. 

@DoodleBetaBot — бот для рисования в групповых чатах.

@SportUp_Bot — групповой бот для организации спортивных игр.

@ImaginaryFriendBot — групповой бот с большим набором функций: присылает картинки котиков и собачек, создает мемы с котом Вжухом, способен поддержать диалог в чате и многое другое. 

@hellouserbot — бот будет приветствовать всех входящих в групповые чаты заданным текстом.

@QuanBot — бот позволяет создавать голосования с большим количеством настроек. 

@groupagreebot — бот для создания голосований.

@SurveiaBot — бот для создания ваших опросов и анкет.

@toolkitbot — бот для администраторов каналов. Создает кнопки, конвертирует mp3 в голосовые сообщения, позволяет делать лайки и другое.

@channely_bot — бот для администрирования ваших каналов через веб интерфейс.

@BoteratorBot — бот для администрирования ваших каналов в Telegram. 

@combot — статистический бот для групп, имеет топ чатов, использующих его.

@MFF_bot — бот присылает в группу самые свежие новости экономики. Аналитику, курсы и про

Создание бота в Telegram — алгоритм, проверка работы

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

Сегодня активные пользователи используют не только страницы социальных сетей для дополнительно заработка, но и мессенджеры. Одним из молодых, но самым популярным и большими возможностями для бизнеса, является проект Павла Дурова – Telegram. За последний год, мессенджер преобразился, появились новые опции. Ведения бизнеса и получение прибыли на не паханном поле, приманивает большое количество пользователей.

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

Функции и возможности ботов телеграм

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

Функции и возможности

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

Боты существуют:

  • для создания опросов, голосований;
  • для дополнительного заработка, для ставок, развлечений;
  • для размещения контента, автопостинг публикаций;

Внимание! Боты можно использовать готовы, а можно создать самостоятельно, используя специальные сервисы.

Какое применение могут быть у ботов? Рассмотрим несколько вариантов:

  1. обеспечивает сотрудничество с большим количеством клиентов;
  2. могут служит консультантами по общим вопросам;
  3. помогают сократить расход личного времени на ведение аккаунтов нескольких социальных сетей;
  4. блокировка аккаунта с которого ведутся подозрительные действия в вашем профиле.

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

Создание

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

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

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

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

Алгоритм создания

В первую очередь необходимо определиться, для чего мы хотим его создать. Чтобы его создать, следует написать и соблюдать алгоритм действия. Существует несколько шагов по созданию. На самом первом этапе необходимо зарегистрировать будущее «чадо» bot, чтобы получить ID. Сделать это можно с помощью официального бота для telegram Bot Father. Сначала добавляете его в свои контакты, а затем пишете – страт (start). В ответ придет сообщение с перечнем команд. Выбираете нужную команду. Пишите имя, в конце фразы добавляете слово bot. На данном этапе можно совершить всю настройку оформления, выбрать и установить аватар, краткое описание и приветственное сообщение для пользователей, которые им будут пользоваться.

Важно! Рекомендуем заранее продумать название своего продукта. Чтобы процесс прошел быстрее. Никаких ограничений нет.

Далее переходим непосредственно к самому программированию. На фото представлен скелет продукта:

скелет

Далее нам необходимо установить адрес и сигнал входа. Делается того чтобы можно было управлять вручную:

необходимо установить адрес

Код очень легок:

Как создать бота в Телеграм

После регистрации и программирования, принимаем соглашение с разработчиками Telegram. И программируем две базовые команды старт и помощь (star/help).

принимаем соглашение

Далее можем писать свою команду.

программируем две

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

Проверка функциональности

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

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

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

Разработка ботов процесс увлекательный, но трудоемкий. Как вписать команды, зависит от того с какой платформой работаете. Например, если рассматривать платформу ManyBot. То после завершения регистрации на втором этапе в меню появятся кнопки с разным функционалом. Кликаете по кнопке «создать команду». Название может быть любым, главное ее содержание, суть. Любая команда начинается со слэш – «/».

Автопостинг и отложенный пост

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

Добавление кнопок

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

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

5 / 5 ( 13 голосов )

Leave a comment