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

Изначально Telegram был обычным мессенджером для базовой отправки сообщений. Чуть позже он начал обрастать новыми функциями. Многим Телега начала заменять другие социальные сети и даже самые разные сервисы интернета.

Чем полезен Telegram

На сегодняшний день, Телеграм — это огромный интернет-комбайн, где можно:

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

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

Создаем телеграм бота для дейтинга за 5 минут / Арбитраж Трафика

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

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

Создание бота в Telegram: пошаговая инструкция

поиск бота в telegram

Нажимаем «Запустить», и в ответном сообщении сразу присылается меню. Оно на английском, но ничего сложного нет.

Выбираем /newbot, далее в сообщении пишем название своего нового бота.

задаем имя бота

Далее указываем username бота, по которому его можно будет найти, обязательно чтобы юзернейм заканчивался на «bot».

Наше рабочее название будет «GTOnidzuka_bot», далее мы его переименуем. Если юзернейм занят, то выбираем другой. Также BotFather присылает уникальный ключ, подобие пароля от бота, его никому нельзя показывать.

После того выбора имени нашего бота можно найти в поиске Телеграм или зайти на него по ссылке.

поиск бота в telegram

Теперь нам доступно редактирование бота. С помощью команд можно изменить аватарку, общее название, описания и т.д. Также в боковую кнопку «Меню» можно зашить ссылку на сайт или социальную сеть.

Основные команды в BotFather:

  • /setname — изменить имя бота
  • /setdescription — изменить описание бота
  • /setuserpic — изменить аватарку бота
  • /setcommands — задать команды для бота
  • /deletebot — удалить бота

Наш бот создан и отображается в поиске, но пока еще ничего не умеет.

Больше статей на схожую тематику:

  • Посевы ВКонтакте: полный гайд для запуска
  • 10 советов, как написать пост в блоге, чтобы его комментировали
  • Успеть за 24 часа: как работают сторис ВКонтакте

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

Чат-бот в Телеграм для знакомств

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

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

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

Итак, попадаем в Телегу к Manybot и там имеется русский интерфейс, что очень радует.

стартовое окно manybot

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

подключение канала к боту

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

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

назначение бота администратором канала

Для подключения канала к боту, нужно отправить тестовое сообщение. И да, нам пришло уведомление в канале. Простейшие функции уже работают.

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

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

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

добавление команд для бота

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

добавление новой команды

Команда создана, но она пуста. Теперь ей нужно задать действие. Для этого переходим в наш бот, далее в «Пользовательские команды», среди них выбираем наш «bang» и жмем «Редактировать ответы команды».

Еще по теме:  Как включить обратный отсчет в Телеграмме

редактирование действий команды

Сейчас нужно напечатать сообщение к команде — это как раз и есть ответное действие на ее вызов. Ранее мы решили, что при вызове команды, ответом будет ссылка на наш сайт. Поэтому просто вставляем ссылку.

добавление сообщения к команде

Теперь при вызове команды /bang, в ответе будет ссылка на наш сайт.

Заметили, что также есть кнопка «Добавить вопрос»? Это некая форма обратной связи, если его добавить, то при вызове команды пользователю будет задан этот вопрос.

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

добавление вопроса на команду

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

примеры кнопок в боте

А вот и новые ответы на форму:

ответы на форму

Если пользователь тапнет на «Хочу заказать услугу», то пользователя можно найти и написать ему.

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

пример работы обратной связи

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

На этот раз добавили команды для всех подразделов нашего блога. Перед этим добавив команду /blog, она будет корневой.

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

добавление списка команд

Нравится статья? Тогда смотрите наши курсы!

  • Курс «SMMщик с нуля: от чайника до профи»
  • Мини-курс «Как продавать в соцсетях»
  • Вебинар «Контент, который продает»

Итак, у нас есть много команд, которые мы будем обрамлять в удобные кнопки меню. Но сперва «зашиваем» в команды ссылки на наши подразделы блога как это описано выше.

Для добавления кнопок жмем на «Пользовательские команды», а далее кликаем на «Настроить главное меню».

Затем нажимаем на «Добавить пункт меню». Из ранее добавленных команд выбираем доступную, задаем ей имя, которое будет отображаться и кликаем «Сохранить».

добавление пунктов меню

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

Вот так теперь выглядит наш бот.

кнопки контактов

При переходе в социальные сети появляются их кнопки:

кнопки социальных сетей

А при переходе в блог сперва появляется опрос:

опрос в блоге

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

И далее появляются его подразделы.

подразделы блога в боте

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

Если зайти с другого аккаунта, бот отображается вот так:

вид бота из другого аккаунта

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

Для этого в главном меню бота нажимаем на «Отправить новое сообщение пользователям», печатаем наше сообщение и жмем «Отправить пост подписчикам».

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

постинг сообщений на канал

Спустя пару секунд придет уведомление о новой статье в блоге.

Также мы прикрутили автопостинг с помощью RSS-ленты. Кстати, в одной из наших статей писали, что это и как ее подключить, рекомендуем прочесть здесь.

Помимо RSS, можно подключить и Youtube.

подключение автопостинга в боте

Примеры роста кликов, конверсий, заказов и прибыли:

  • Привлечение лидов на курс SMM по 7 рублей
  • Создание, оформление и ведение сообщества ВКонтакте для туристической компании
  • Свыше 88 000 показов с ограниченным бюджетом

Так просто?

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

А если вы еще не подписаны на наш канал, то советую исправить это недоразумение. 🙂 Делимся только полезными новостями из мира SEO и интернет-маркетинга.

44

0

0

0

1

Спасибо за реакцию, она бесценна! Обязательно подпишитесь на наш Telegram-канал, публикуем много интересных и актуальных материалов. Не пользуетесь Telegram, тогда познакомьтесь с Катей и подпишитесь на нашу рассылку. ×

Источник: 1ps.ru

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

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

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

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

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

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

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

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