Пишем ему /start и получаем список всех его команд.
Первая и главная - /newbot - отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя - в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot
Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)
Каркас бота:
URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN
MyURL = "https://example.com/hook"
api = requests.Session()
application = tornado.web.Application([
(r"/", Handler),
])
if __name__ == "__main__":
signal.signal(signal.SIGTERM, signal_term_handler)
try:
set_hook = api.get(URL + "setWebhook?url=%s" % MyURL)
if set_hook.status_code != 200:
logging.error("Can"t set hook: %s. Quit." % set_hook.text)
exit(1)
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
except KeyboardInterrupt:
signal_term_handler(signal.SIGTERM, None)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.
Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.
Class Handler(tornado.web.RequestHandler):
def post(self):
try:
logging.debug("Got request: %s" % self.request.body)
update = tornado.escape.json_decode(self.request.body)
message = update["message"]
text = message.get("text")
if text:
logging.info("MESSAGE\t%s\t%s" % (message["chat"]["id"], text))
if text == "/":
command, *arguments = text.split(" ", 1)
response = CMD.get(command, not_found)(arguments, message)
logging.info("REPLY\t%s\t%s" % (message["chat"]["id"], response))
send_reply(response)
except Exception as e:
logging.warning(str(e))
Здесь CMD - словарь доступных команд, а send_reply - функция отправки ответа, которая на вход принимает уже сформированный объект Message .
Собственно, её код довольно прост:
Def send_reply(response): if "text" in response: api.post(URL + "sendMessage", data=response)
Теперь, когда вся логика бота описана можно начать придумывать ему команды.
Def help_message(arguments, message): response = {"chat_id": message["chat"]["id"]} result = ["Hey, %s!" % message["from"].get("first_name"), "\rI can accept only these commands:"] for command in CMD: result.append(command) response["text"] = "\n\t".join(result) return response
Структура message["from"] - это объект типа User , она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message["chat"]["id"] - в случае личного общения там будет User, а в случае чата - id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.
Команда /start без параметров предназначена для вывода информации о боте, а с параметрами - для идентификации. Полезно её использовать для действий, требующих авторизации.
После этого можно добавить какую-нибудь свою команду, например, /base64:
Def base64_decode(arguments, message): response = {"chat_id": message["chat"]["id"]} try: response["text"] = b64decode(" ".join(arguments).encode("utf8")) except: response["text"] = "Can"t decode it" finally: return response
Для пользователей мобильного 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:
Command1 - Description
command2 - Another description
I:
whoisyourdaddy - Information about author
base64 - Base64 decode
BotFather: Success! Command list updated. /help
C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.
UPD:
Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/
Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.
Для начала в Handler добавляем обработчик:
If text == "/":
...
else:
response = CMD["
А потом в список команд добавляем псевдо-речь:
RESPONSES = {
"Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"],
"Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"],
"Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"],
"Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",],
}
def human_response(message):
leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1)
response = {"chat_id": message["chat"]["id"]}
if leven < 75:
response["text"] = "I can not understand you"
else:
response["text"] = random.choice(RESPONSES.get(leven)).format_map({"name": message["from"].get("first_name", "")})
return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map - удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
Для примера расширим словарь RESPONSES:
RESPONSES["What time is it?"] = ["
И будем отлавливать текст
If response["text"] == "
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
Def send_reply(response):
if "sticker" in response:
api.post(URL + "sendSticker", data=response)
elif "text" in response:
api.post(URL + "sendMessage", data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:
Вспоминая , могу сказать, что теперь извращений меньше, а работа прозрачнее.
К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:
While True: r = requests.get(URL + "?offset=%s" % (last + 1)) if r.status_code == 200: for message in r.json()["result"]: last = int(message["update_id"]) requests.post("http://localhost:8888/", data=json.dumps(message), headers={"Content-type": "application/json", "Accept": "text/plain"}) else: logging.warning("FAIL " + r.text) time.sleep(3)
P.S. По пункту 7 нашел удобное решение - размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч "method": "sendMessage" (или любой другой метод, используемый ботом).
Теги: Добавить метки
Приветствую пользователей Телеграм. Продолжаю свой рассказ о супер популярном мессенджере. Специально отобрал самые полезные боты для Telegram. Все проверил вручную, так что они будут действительно интересными, и что немаловажно, понимающими самые простые команды.
В прошлой статье мы разбирали, советую ознакомиться с ней для начала.
Коротко напомню алгоритм использования бота:
Чат Telegram-специалистов
Друзья, мы создали чат в котором собрали всех, кто работает с каналами и чатами в Telegram. Вы можете обратиться за помощью по работе с ботами и обсудить любой вопрос с участниками.
Присоединиться к чату:
t-do.ru/joinchat/EVgZrUgkpH_nz-uvWAnmkQ
Новости спорта и здорового образа жизни.
Интересуетесь видео, картинками, музыкой? Читайте, как упростить работу с таким контентом.
Свежие новости, сплетни, происшествия с доставкой в телефон.
Для бизнесменов и желающих ими стать.
Здесь собраны помощники, задача которых развлекать пользователя.
Боты ищут полезную информацию из разных областей. От погоды до кулинарных рецептов.
Помощники книголюбов и переводчиков.
При выборе ботов я пользовался магазином — storebot.me . Рекомендую искать их там. Есть удобные категории и отзывы живых людей.
Если робот надоел или перестал быть нужным, смело избавляйтесь от него. Для этого можно удалить диалог или воспользоваться функцией полной блокировки.
Смотрите, как это сделать.
С телефона
На Айфоне всё просто — смахиваете диалог с ботом влево и нажимаете “Удалить”.
На Андроиде есть несколько способов.
Способ 1 . Длинный тап по названию в общем списке чатов и “Удалить и остановить”.
Способ 2 . Нажать кнопку с тремя точками вверху справа и выбрать “Удалить чат”.
Александр Иванов
Доброго времени суток, друзья! Сегодня мы разберем самые, по моему не скромному мнению, лучшие боты для Telegram 2018 года. Но сначала, для тех кто не в курсе, немного расскажу о том, что это такое и для каких целей они используется.
Также поговорим о способах поиска нужных ботов и о том, как их правильно использовать.
Бот — это утилита, которая выполняет определенные команды пользователя. Этот робот может отвечать на вопросы с помощью программного чата, выполнять Ваши определенные команды в любое время суток, тем самым, экономя ваше время.
Боты Телеграмм умеют работать в качестве поисковиков на просторах интернета, напоминалок, обучать, скачивать видео, аудио и текстовую информацию, играть и развлекать пользователей, комментировать необходимые статьи, принимать участие в групповых чатах.
Вы можете использовать их даже для управления умным домом .
Таким образом, бот выполняет работу посредника между веб-службами и человеком. И теперь в Телеграме, выходит, есть вся информация, которую люди, обычно, ищут в таких всемирно известных поисковиках, как Гугл или Яндекс.
На самом деле работа с утилитой не вызывает никаких трудностей: вы пишите сообщение и через несколько секунд получаете ответ.
К тому же, помимо многих очевидных плюсов работы с роботом, он также использует ресурсы других серверов, поэтому мощности Вашего устройства не задействованы.
Поиск его аналогичен поиску каналов в Телеграм и найти нужный нам можно следующими способами:
Если вы уже не нуждаетесь в помощи робота, то можете удалять его, не задумываясь. Для этого необходимо очистить диалог или использовать функцию полной блокировки.
Согласно оценкам и отзывам пользователей в сети, а также моему опыту, ниже будут представлены самые популярные программы:
Для любителей новостей и происшествий подойдут такие боты, как @tgnewsbot , @vestiru_bo , @lifehackerrubot . Здесь вы сможете прочитать все свежие новости и слухи, а также сводки самых горячих событий от федерального канала Вести 24.
Для развлечений рекомендуется установить @Hangbot (отгадывание слов), @RadioBot (прослушка радио в мессенджере, выбор часов вещания и станции), @BukToPuHa (выполнение заданий любого уровня сложности, а также соревнования с рейтингами).
Для любителей книг и переводчиков подойдут @ytranslatebot , @misis_bot и @bookshopbot .
Кстати, Телеграф — это специальный сервис от мессенджера Телеграм, предназначенный для публикации объемных текстовых и медийных материалов. Обратите внимание на эту статью в Телеграф о заработке на КэшБэк .
Для тех, кто не против риска и готов иногда поиграться свободными средствами в хайп-проектах:
Боты, не требующие вложений (за исключением первого в списке, но и самого доходного, стабильного и перспективного):
И напоследок, бот, который не требует ни выполнения заданий, ни тем более, вложений, а только лишь привлекать новых партнеров:
Социальный Миллион — имеет 10 уровневую патнерскую программу и создан, предположительно, для будущей монетизации на выполнении заданий или раскрутке. Минимальная сумма на вывод — 30 руб. На данный момент тестирую.
Ваша прибыль:
Рассчет дохода:
Если каждый пользователь будет приглашать всего по 10 человек, то вы сможете заработать:
Но можно ведь пригласить и больше... Ну что, пробуем?
Для покупки криптовалюты, а также её продажи, очень удобно пользоваться сервисом BTC CHANGE BOT, о котором я писал . Приведу лишь список его ботов:
Иногда вы можете столкнуться с ситуацией, когда бот не дает ответа на вопросы. Так в чем же проблема?
Самой главной причиной может стать поломка сервера, временный сбой или отказ. Нередко случается, что программист, который не имеет определенного опыта, сделал ошибку при написании кода.
Также Вы сами можете ввести команду, которую программа просто не понимает. Тогда лучше обращаться за помощью в Гугл.
Надеюсь, вышеизложенная информация окажется Вам полезной. Не забывайте подписываться на обновление блога, делиться впечатлениями в социальных сетях.
Также подписывайтесь на Телеграм канал блога @сайт .
До скорых встреч!
P.S. Данная статья находится в ТОПе поисковых систем по некоторым запросам и у каждого второго/третьего посетителя есть огромное желание разместить в комментариях свою реферальную ссылку на тот или иной сервис.
Ребят, не для того я свой блог продвигаю уже не первый год и вкладываю в него и душу и средства, что бы на нем оставляли СПАМ кому не лень. Любые комментарии со ссылками в тексте удаляю и даже не читаю.
Но, я открыт к конструктивным предложениям. И если Вы админ, или просто считаете или обладаете информацией о том, что тот или иной сервис в Телеграме работает и платит (и можете это подтвердить) — пишите через . Рассмотрю и зарегистрируюсь в первую линию.
Вот один скрин, думаю, тут все ясно:
Привет, друзья!
Мы вдохновились самыми интересными и наконец-то решили завести собственный! Подписывайтесь на @ESETRussia и будьте в курсе последних новостей инфобезопасности.
Телеграм развивается с огромной скоростью, вслед за каналами здесь появились боты, которые сделают все за вас. Они ищут информацию лучше и быстрее пользователя, переводят с любых языков, делают массовые рассылки почты и даже могут самостоятельно заказать пиццу.
В зависимости от функционала боты распознают те или иные текстовые команды. Для упрощения навигации разработчики часто добавляют кнопки с набором предустановленных действий.
Возможно, скоро боты принесут своим владельцам немалую прибыль. Создатель Телеграм Павел Дуров уже не раз намекал об их переводе на коммерческую основу. Однако пока боты для всех даром, и пусть никто не уйдет обиженный.
Представляем подборку лучших ботов для вашего Телеграм-аккаунта.
Сервисы
@movie_bot
Не знаете какой фильм посмотреть? Достаточно определиться с жанром, и бот тут же выдаст рекомендацию.
@vk_bot
Бот позволяет интегрировать любой паблик ВКонтакте в Telegram.
@temp_mail_bot
Бот создает временный почтовый ящик на 10 минут. Полезно для регистрации на сайтах, куда вы не собираетесь возвращаться.
@hotelrobot
Будущее за ботами, которые автоматизируют сферу услуг. Hotelrobot ищет отели.
@rubbot
Теперь для проверки курса валют даже не нужно открывать браузер.
@zodiac_bot
Для тех, кто верит в гороскопы.
@YTranslateBot
Переводчик Яндекса внутри Telegram.
@grammarnazibot
Бот проверяет орфографию в присланных ему сообщениях; также можно добавить его в общий чат, где он деликатно укажет на ошибки каждому участнику дискуссии.
Вместо приложений
@weatherman_bot
Приложения с прогнозом погоды уходят в прошлое. Бот дает сводки на сегодня, завтра, 5 дней и присылает автоматические уведомления.
@MyCookBot
Этот бот не просто ищет рецепты по запросу, но и предлагает блюда в зависимости от имеющихся в холодильнике продуктов.
@Pomodoro_timer_bot
Улучшить навыки тайм-менеджмента вам поможет бот с интересным названием Pomodoro. Он делит рабочее время на отрезки (они называются «помидоры») по 30 минут, где 25 минут работы без отвлечений сменяются 5 минутами отдыха. Начало и конец каждого «помидора» отмечается уведомлением. В конце дня можно изучить статистику, чтобы понять, как работать еще эффективнее.
@hotorbot
Функционал бота аналогичен многим приложениям для знакомств и позволяет оценивать фотографии людей, находящихся неподалеку.
@imagebot
Бот ищет картинки по запросу внутри Telegram.
@iVideoBot
Человечество еще не изобрело более простого способа скачать видео с YouTube. Отправляем боту ссылку, получаем файл.
@Instasave_bot
Скачать видео из Instagram еще сложнее, чем с YouTube. Бот справляется всего за несколько секунд - достаточно отправить ссылку, и он скачивает файл самостоятельно.
@filesbot
Бот работает с разными типами файлов: хранит их и делится с другими пользователями. Зачем делать это в мессенджере? Огромное количество пользователей Telegram в восторге от этой функции.
@topdf_bot
Бот конвертирует самые распространенные форматы файлов (.doc, .docx, .odt, .txt и.jpg) в PDF.
@evernotesbot
Простой бот, который позволяет сохранить рабочую переписку в Evernote.
Текстовые квесты и викторины
Мессенджеры прочно вошли в повседневную жизнь практически любого интернет-пользователя. Их функционал постоянно улучшается, и всё больше людей готовы отказаться от социальных сетей, полностью перейдя на эти программы для обмена сообщениями. И действительно, зачем ставить дополнительные программы или запускать браузер , когда практически любую задачу можно выполнить прямо в чате?
Несмотря на то, что на российском рынке до 2015 года практически безраздельно властвовали несколько популярных приложений, в частности «Viber» и «WhatsApp» , основатель «ВКонтакте» Павел Дуров создал новый бесплатный мессенджер «Telegram». Многие не рассчитывали на его значительный успех, и большинство аналитических материалов сводилось к тому, что большая часть пользователей перестанет им пользоваться через короткое время. Но новинка, помимо лёгкости, скорости, невероятной безопасности и полной кроссплатформенности, получила ряд уникальных функций. Одной из таких исключительных функций являются боты. Это специальные чаты, которые управляются компьютерным искусственным интеллектом.
Подобные чаты становятся всё более и более популярными, а также обрастают новыми, более продвинутыми функциями и возможностями. Не покидая любимого чата, можно узнать погоду, курс валют, почитать новости или анекдоты, забронировать столик в кафе или заказать доставку еды на дом. На самом деле этот список не полный, и в последнее время наблюдается тенденция, когда всё больше компаний или сервисов хотят запустить для своих клиентов чат-бота.
В сегодняшнем материале мы расскажем вам о 10 самых интересных и полезных ботах для «Telegram» . Мы проведём небольшой обзор каждого из них, а также вкратце расскажем, как ими пользоваться.
Хотите быстро получать сводку о прогнозе погоды в вашем городе? Теперь вы сможете смело отказаться от различных погодных приложений, разряжающих батарею вашего смартфона. Больше не нужно тратить лишнее время на запуск и трафик на загрузку прогноза. Воспользуйтесь этим великолепным погодным ботом. Из всех погодных этот - самый популярный.
Как пользоваться:
Нужно зарегистрироваться на каком-то онлайн-сервисе, но не хотите светить свой основной электронный ящик? Не беда! Воспользуйтесь этим замечательным ботом. Что он может вам предложить? Он быстро сгенерирует временный почтовый ящик, который будет жить всего лишь 10 минут, после чего все ваши данные будут уничтожены. Этого времени вполне достаточно, чтобы зарегистрироваться на сервисе и подтвердить адрес электронной почты. Это лучшее, что может быть. Бот будет очень полезен в том случае, если нужно зарегистрироваться на сайте, которым вы не собираетесь пользоваться на постоянной основе.
Как пользоваться:
Единственной задачей этого бота является преобразование документов в формат PDF прямо в «Телеграмме». Он распознаёт такие текстовые форматы, как DOC, DOCX, ODT, TXT и JPG. Список небольшой, но возможность практически мгновенного преобразования без необходимости загрузки на специальные серверы и установки специального софта не могут не радовать.
Как пользоваться: загрузите файл в чат с ботом, и уже буквально через несколько секунд вы получите готовый PDF-файл.
@pronunciationbot
Весьма полезный бот для тех, кто изучает или регулярно пользуется иностранными языками . Помогает правильно прочитать какие-либо незнакомые вам слова, либо если вы не уверены в правильности своего варианта прочтения. Поддерживает 84 языка, для некоторых из них доступны несколько диалектов. Работает бот очень просто: вы пишете слово, а в ответ вам приходит голосовое сообщение с записанным произношением. Хоть в этом популярном боте есть и другие функции, эта - самая популярная.
Как пользоваться:
Несмотря на то, что возможностей загрузить видео с YouTube на сегодня очень много, пользоваться ими далеко не всегда удобно. Особенно если под рукой доступно только мобильное устройство. Этот бот «Телеграмм» значительно упрощает процедуру загрузки видео. Он предложит вам скачать необходимый файл в различном качестве и в нескольких форматах, включая аудио.
Как пользоваться:
Бот, по функционалу очень схожий с предыдущим, единственная разница, что с его помощью можно сохранять фотографии с Instagram. Эта социальная сеть стандартными средствами не позволяет этого сделать, но при помощи бота ограничения можно обойтись несколькими нажатиями клавиш.
Как пользоваться:
Разработчик также заверяет, что с помощью бота можно сохранять видео с YouTube, но на практике компьютер отвечает, что ссылка не поддерживается.
При общении с иностранными друзьями или коллегами, а также в путешествиях онлайн-переводчик может оказать огромную помощь. Но пользоваться отдельным приложением может быть удобным не в каждом случае. Тогда можно воспользоваться официальным ботом от сервиса Яндекс.Перевод. Он обеспечивает качественный перевод и поддерживает 12 языков: английский, русский, арабский, персидский, иврит, французский, немецкий, итальянский, португальский, испанский, турецкий и узбекский.
Как пользоваться:
Этот бот позволяет быстро искать кафе, рестораны и бары неподалёку от места, где вы находитесь. Достаточно отправить местоположение, задать радиус поиска, после чего бот пришлёт выборку всех заведений, где можно подкрепиться в заданном радиусе.
Как пользоваться:
@flibustafreebookbot
Хотите быстро найти , но не хочется тратить время на поиск в браузере? Хороший бот от крупнейшей онлайн-библиотеки значительно ускорит процесс выбора и поиска необходимой книги. Доступен поиск по названиям книг, по авторам, либо же бот может предложить случайную книгу. Каждая книга может быть скачана как минимум в трёх форматах.
Как пользоваться:
Очень мощный, если не самый мощный, поисковый бот, имеющий разные полезные и интересные функции, с помощью которых можно отыскать любого другого бота для «Telegram». Можно отслеживать топ ботов, лучшие новинки, искать по названию, а также сортировать боты по категориям.
Как пользоваться: