Боты в телеграмме как создать: пошаговая инструкция — Разработка на vc.ru

пошаговая инструкция — Разработка на vc.ru

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

101 302
просмотров

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

Шаг 1. Создайте аккаунт разработчика

1. Зарегистрируйтесь на botmother.com с помощью электронной почты (на нее придет письмо с подтверждением) или войдите через Google.

2. Нажмите кнопку «Создать нового бота» (справа внизу).

3. Выберите «Пустой бот».

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

Слева находится меню с разделами конструктора. Справа — вкладка с компонентами и экранами. По центру — рабочая зона для разработки. В левом нижнем углу — виджет обратной связи. Если возникнут трудности, пишите в поддержку.

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

На каждый экран можно добавлять компоненты— это функции и действия бота (например, отправление текста, картинок, кнопок и т.д.).

Все компоненты расположены на вкладке справа.

Шаг 2. Создайте приветствие

1. На вкладке «Компоненты» нажмите на компонент «Сообщение» и перетяните его на экран.

2. Напишите любой текст. Например, «Привет! Это мой первый бот».

3. Нажмите зеленую кнопку «Сохранить» (справа внизу).

Шаг 3. Подключите бота к мессенджеру

В Telegram чат-боты создаются с помощью специального бота @BotFather. Через него можно управлять данными бота, добавить описание, аватар и т.д.

Создадим бота и придумаем ему название:

1. Откройте в Telegram бота @BotFather.

2. Напишите ему /newbot.

3. Придумайте и напишите название бота. Оно будет отображаться в контактах и чатах. Например, «Hello, bot».

4. Придумайте и напишите юзернейм. Он используется для упоминания бота и в ссылках. Юзернейм должен быть на латинице и обязательно заканчиваться на «bot». Например, «botmother_hello_bot».

Теперь нужно подключить бота в Telegram к вашему аккаунту разработчика:

1. Снова откройте @BotFather.

2. Скопируйте токен бота.

3. Вернитесь в конструктор, найдите и откройте в меню слева раздел «Настройки».

4. Переключателем включите платформу Telegram.

5. Нажмите кнопку «Изменить».

6. Вставьте ранее скопированный токен бота.

7. Сохраните изменения.

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

1. Найдите в поиске Telegram своего бота по юзернейму.

2. Нажмите «Начать» (или «Start»). Бот должен отправить приветственное сообщение.

Отлично! Ваш бот умеет отправлять сообщение.

Шаг 4. Добавьте дополнительные функции

Усложним бота. Пусть он задает вопрос с вариантами ответов и присылает разные сообщения в зависимости от выбора пользователя.

Например:

Текст: Как дела?

Первая кнопка: Хорошо

Вторая кнопка: Плохо

Для этого добавим еще два экрана, кнопки и изображение:

1. Откройте конструктор.

2. Добавьте два новых экрана. Для этого нажмите кнопку «Добавить экран» дважды.

3. Сохраните изменения.

Можно изменить названия добавленных экранов двойным кликом:

1. Два раза кликните на названия экранов.

2. Отредактируй тексты. Например, «Экран Хорошо» и «Экран Плохо».

Добавим кнопки, на которые пользователи смогут нажимать:

1. Переместите компонент «Кнопки» на «Стартовый экран».

2. Напишите текст. Например, «Как дела?».

3. Добавьте две кнопки.

4. Напишите тексты на кнопках. Например, «Экран Хорошо» и «Экран Плохо».

Каждая кнопка должна вести на определенный экран, который указывается в настройках кнопки:

1. Нажмите на первую кнопку.

2. В поле «Переход на экран» выберите экран «Экран Хорошо».

3. Нажмите на вторую кнопку.

4. Выберите другой экран — «Экран Плохо».

5. Сохраните изменения.

Итак, на «Стартовом экране» пользователь нажимает на кнопки и попадает на разные экраны. Нужно заполнить их контентом:

1. Переместите компонент «Изображение» на экран «Экран Хорошо».

2. Загрузите любую картинку или вставьте ссылку на изображение.

3. Сохраните изменения.

Теперь заполним следующий экран:

1. Переместите компонент «Сообщение» на экран «Экран Плохо».

2. Напишите текст. Например, «Не унывай, все будет хорошо!». Можно добавить эмодзи.

3. Сохраните изменения.

Все готово!

Шаг 5. Протестируйте бота

У нас получился такой сценарий: бот приветствует пользователя и задает вопрос с вариантами ответов; пользователь нажимает кнопку, и бот присылает определенное сообщение. Давайте протестируем!

1. Откройте своего бота.

2. Напишите команду /start.

3. Понажимайте на кнопки.

Поздравляем!

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

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

Добавление бота в чат Телеграм — в группу, канал или для личных сообщений с чат-ботом в Telegram

5 минут

на чтение

29 августа 2022

Продукты из этой статьи:

Чат-боты используют многие бизнесы: это помогает автоматизировать рутинную работу. При этом они довольно хорошо справляются со своей работой. SaluteBot, например, может не только выдавать пользователю готовые пункты для выбора, чтобы продолжить диалог, но и анализировать написанный текст, чтобы подобрать нужный ответ из базы.

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

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

За создание ботов в Телеграме отвечает… телеграм-бот! Если вы хотите создать нового робота, пройдите следующие шаги:

  1. Через поиск найдите профиль BotFather или перейдите по ссылке https://telegram.me/BotFather.
  2. Нажмите кнопку «Start» в чате.
  3. Введите команду /newbot.
  4. Укажите название — это то, как пользователи будут видеть его в списке контактов.
  5. Укажите системное имя: это логин после знака @.

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

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

Основа для чат-бота создана, и ему даже можно написать сообщение. Но чтобы он заработал, нужно создать для него сценарий. Сделать это можно через сервис SaluteBot.

Простая настройка в Studio

Создайте своего бота в Telegram

Настройка и возможности SaluteBot

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

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

Далее порядок действий будет следующий:

  1. Зайдите в Studio и нажмите «Создать проект».
  2. Выберите «Приложения» — SaluteBot.
  3. Нажмите «Добавить аккаунт» и авторизуйтесь в Jivo.
  4. Придумайте название проекта.
  5. Выберите «Свой сценарий», это бесплатное создание сценария в режиме конструктора.
  6. Далее вы попадёте в конструктор, где сможете собрать нужный сценарий.

Вот какие возможности есть в конструкторе:

  • Отправка пользователю текста (приветствие, ответ на сообщение или на действие).
  • Запрос данных — если нужно уточнить у клиента какую-то информацию, например, имя, телефон, номер заказа.
  • Условие — сценарий должен гибко реагировать на действия клиента, поэтому при выборе того или иного пункта меню бот, в зависимости от настроенного условия, будет реагировать по-разному.
  • Перевод диалога на оператора. Если бот не справляется с вопросом, он автоматически пригласит оператора в чат.
  • Вызов скрипта — для продвинутых сценариев, где подразумевается обмен данными со сторонними системами.

Как добавить в группу

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

Чтобы использовать телеграм-бот в группе, просто выберите его как нового участника: созданный нами робот — это обычный отдельный аккаунт в списке участников группы.

Вот что нужно сделать:

  1. Перейдите в настройки группы в Телеграме.
  2. Нажмите на кнопку «Добавить участников».
  3. Найдите бот по системному имени через @имя.
  4. Нажмите на него, а затем — «ОК», чтобы добавить его к телеграм-чату.

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

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

Как добавить в канал

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

  1. Зайдите в телеграм-канал, нажмите на три точки и выберите «Управление каналом».
  2. Перейдите в раздел «Администраторы».
  3. В поиске найдите бот по системному имени через @имя.
  4. Добавьте его в качестве администратора и укажите, какие разрешения у него должны быть. Если не выдать нужное разрешение, то некоторые функции могут не работать.

В канал можно добавить собственный бот или выбрать уже существующий.

Для личных чатов

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

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

А ещё работа с ботом напрямую позволяет протестировать его перед использованием в группе или канале — так можно проверить, что все функции работают, как ожидалось.

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

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

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

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

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

Telegram — одна из самых популярных платформ обмена мгновенными сообщениями на сегодняшний день, так как она позволяет хранить сообщения в облаке, а не только на вашем устройстве, и может похвастаться хорошей многоплатформенной поддержкой, так как вы можете иметь Telegram на Android, iOS, Windows и почти любая другая платформа, которая может поддерживать веб-версию. Создание чат-бота в Telegram довольно просто и требует нескольких шагов, которые занимают очень мало времени. Чат-бота можно интегрировать в группы и каналы Telegram, а также он работает самостоятельно.

В этом уроке мы создадим бота Python Telegram, который предоставит вам изображение аватара из Adorable Avatars. Наш пример будет включать создание бота с использованием Flask и его развертывание на бесплатном сервере Heroku.

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

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

Начало работы: как создать бота в Telegram

Чтобы создать чат-бота в Telegram, вам необходимо связаться с BotFather, который по сути является ботом, используемым для создания других ботов.

Вам нужна команда /newbot , которая приводит к следующим шагам для создания вашего бота:

Ваш бот должен иметь два атрибута: имя и имя пользователя. Имя будет отображаться для вашего бота, а имя пользователя будет использоваться для упоминаний и обмена.

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

Закодируйте логику чат-бота

В этом руководстве мы будем использовать Ubuntu. Для пользователей Windows большинство приведенных здесь команд будут работать без проблем, но если у вас возникнут какие-либо проблемы с настройкой виртуальной среды, перейдите по этой ссылке. Что касается пользователей Mac, это руководство должно работать нормально.

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

 $ python -m venv botenv/
 

Теперь у нас будет каталог botenv/, который будет содержать все библиотеки Python, которые мы будем использовать. Активируйте virtualenv с помощью следующей команды:

 $ source botenv/bin/activate
 

Библиотеки, которые нам нужны для нашего бота:

  • Flask: микровеб-фреймворк, построенный на Python.
  • Python-telegram-bot: оболочка Telegram API на Python.
  • Запросы: популярная http-библиотека Python.

Вы можете установить их в виртуальной среде с помощью команды pip следующим образом:

 (telebot) $ pip install flask
(телебот) $ pip install python-telegram-bot
(телебот) $ pip запросы на установку
 

Теперь давайте просмотрим каталог нашего проекта.

 .
├── app.py
├── телебот
│ ├── учетные данные.py
│ | .
│ | Здесь вы можете построить свой двигатель
│ | .
│ └── __init__.py
└── ботенв
 

В файле учетных данных .py нам понадобятся три переменные:

 bot_token = "вот ваш токен доступа от BotFather"
bot_user_name = "имя пользователя, которое вы ввели"
URL = "ссылка на приложение heroku, которую мы создадим позже"
 

Теперь вернемся к нашему app.py и пройдемся по коду шаг за шагом:

 # импортируем все
из фляги импорт фляги, запрос
импортная телеграмма
из telebot.credentials импортировать bot_token, bot_user_name, URL
 
 глобальный бот
глобальный ТОКЕН
ТОКЕН = bot_token
бот = телеграмма.Бот (токен = ТОКЕН)
 

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

 # запустить приложение фляги
приложение = фляга (__имя__)
 

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

В нашем примере функция маршрута отвечает на URL-адрес, который в основном имеет вид /{токен} , и это URL-адрес, который Telegram будет вызывать для получения ответов на сообщения, отправленные боту.

 @app.route('/{}'.format(TOKEN), методы=['POST'])
деф ответ():
   # получить сообщение в формате JSON, а затем преобразовать его в объект Telegram
   update = telegram.Update.de_json(request.get_json(force=True), бот)
   chat_id = update.message.chat.id
   msg_id = обновление.сообщение.message_id
   # Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с юникодом
   текст = обновить.сообщение.текст.кодировать('utf-8').декодировать()
   # только для отладки
   print("получил текстовое сообщение:", текст)
   # приветственное сообщение при первом общении с ботом
   если текст == "/старт":
       # напечатать приветственное сообщение
       bot_welcome = """
       Добро пожаловать в бот coolAvatar, бот использует сервис http://avatars. adorable.io/ для создания классных аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
       """
       # отправить приветственное сообщение
       bot.sendMessage(chat_id=chat_id, text=bot_welcome, answer_to_message_id=msg_id)
   еще:
       пытаться:
           # очищаем полученное сообщение от любых не алфавитов
           текст = re.sub(r"\W", "_", текст)
           # создайте ссылку API для аватара на основе http://avatars.adorable.io/
           url = "https://api.adorable.io/avatars/285/{}.png".format(text.strip())
           # ответьте фотографией на имя, которое прислал пользователь,
           # обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram доставит их для вас
           bot.sendPhoto(chat_id=chat_id, фото=url, answer_to_message_id=msg_id)
       кроме исключения:
           # если что-то пошло не так
           bot.sendMessage(chat_id=chat_id, text="Возникла проблема с именем, которое вы использовали, введите другое имя", answer_to_message_id=msg_id)
   вернуть "хорошо"
 

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

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

Маршрут здесь может быть любым; вы тот, кто позвонит:

 @app.route('/setwebhook', method=['GET', 'POST'])
определение set_webhook():
    # мы используем объект бота, чтобы связать бота с нашим приложением, которое работает
    # в ссылке предоставленной URL
    s = bot.setWebhook('{URL}{HOOK}'.format(URL=URL, HOOK=TOKEN))
    # что-то, чтобы мы знали, что все работает
    если с:
        вернуть "настройка вебхука в порядке"
    еще:
        вернуть "установка веб-хука не удалась"
 

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

 @app.route('/')
индекс определения():
    возвращаться '.'
если __name__ == '__main__':
    # обратите внимание на многопоточный аргумент, который позволяет
    # ваше приложение должно иметь более одного потока
    app.run(threaded=Истина)
 

Давайте посмотрим на полную версию app.py:

 import re
из фляги импорт фляги, запрос
импортная телеграмма
из telebot.credentials импортировать bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
ТОКЕН = bot_token
бот = телеграмма.Бот (токен = ТОКЕН)
приложение = фляга (__имя__)
@app.route('/{}'.format(TOKEN), методы=['POST'])
деф ответ():
   # получить сообщение в формате JSON, а затем преобразовать его в объект Telegram
   update = telegram.Update.de_json(request.get_json(force=True), бот)
   chat_id = update.message.chat.id
   msg_id = обновление.сообщение.message_id
   # Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с юникодом
   текст = обновить.сообщение.текст.кодировать('utf-8').декодировать()
   # только для отладки
   print("получил текстовое сообщение:", текст)
   # приветственное сообщение при первом общении с ботом
   если текст == "/старт":
       # напечатать приветственное сообщение
       bot_welcome = """
       Добро пожаловать в бот coolAvatar, бот использует сервис http://avatars. adorable.io/ для создания классных аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
       """
       # отправить приветственное сообщение
       bot.sendMessage(chat_id=chat_id, text=bot_welcome, answer_to_message_id=msg_id)
   еще:
       пытаться:
           # очищаем полученное сообщение от любых не алфавитов
           текст = re.sub(r"\W", "_", текст)
           # создайте ссылку API для аватара на основе http://avatars.adorable.io/
           url = "https://api.adorable.io/avatars/285/{}.png".format(text.strip())
           # ответьте фотографией на имя, которое прислал пользователь,
           # обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram доставит их для вас
           bot.sendPhoto(chat_id=chat_id, фото=url, answer_to_message_id=msg_id)
       кроме исключения:
           # если что-то пошло не так
           bot.sendMessage(chat_id=chat_id, text="Возникла проблема с именем, которое вы использовали, введите другое имя", answer_to_message_id=msg_id)
   вернуть "хорошо"
@app. route('/set_webhook', методы=['GET', 'POST'])
определение set_webhook():
   s = bot.setWebhook('{URL}{HOOK}'.format(URL=URL, HOOK=TOKEN))
   если с:
       вернуть "настройка вебхука в порядке"
   еще:
       вернуть "установка веб-хука не удалась"
@app.route('/')
индекс определения():
   возвращаться '.'
если __name__ == '__main__':
   app.run(threaded=Истина)
 

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

Запустите наше приложение на Heroku

Нам нужно несколько вещей, прежде чем мы создадим наше приложение.

Heroku не может знать, какие библиотеки использует ваш проект, поэтому мы должны сообщить об этом, используя файл requirements.txt — распространенная проблема заключается в том, что вы неправильно пишете требования, поэтому будьте осторожны — для создания файла требований используйте pip:

 пунктов замораживания > требования. txt
 

Теперь у вас есть готовый файл требований.

Теперь вам нужен Procfile , который сообщает Heroku, где запускается наше приложение, поэтому создайте файл Procfile и добавьте следующее:

 web: gunicorn app:app
 

Шаг возврата: вы можете добавить в проект файл .gitignore , чтобы неиспользуемые файлы не загружались в репозиторий.

На панели управления Heroku создайте новое приложение. Как только вы это сделаете, он направит вас к Развернуть страницу . Затем откройте вкладку Settings в новом окне и скопируйте домен приложения, который будет выглядеть примерно так: https://appname.herokuapp.com/ и вставьте его в переменную URL внутри учетных данных.py .

Теперь вернитесь на вкладку Развертывание и выполните шаги:

Примечание: Пользователи Windows и macOS могут выполнить шаги, описанные здесь.

Войдите в Heroku:

 $ вход в героку
 

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

 $ heroku login -i
 

Инициализировать репозиторий Git в нашем каталоге:

 $ git init
$ heroku git:remote -a {имя-проекта-героку}
 

Разверните приложение:

 $ git add . 
$ git commit -m "первая фиксация"
$ git push геройку мастер
 

На этом этапе вы увидите ход строительства в своем терминале. Если все прошло нормально, вы увидите что-то вроде этого:

 удаленный: -----> Запуск...
удаленный: выпущен v6
удаленный: https://project-name.herokuapp.com/ развернут в Heroku
удаленный:
удаленный: Проверка развертывания... выполнена.
 

Теперь перейдите на страницу приложения (ссылка домена, который вы скопировали ранее) и добавьте в конец ссылки /setwebhook , чтобы адрес был примерно таким: https://appname.herokuapp.com/setwebhook . Если вы видите webhook setup ok , это означает, что вы готовы к работе!

Теперь поговорите со своим ботом

Последние штрихи, советы и хитрости

Теперь у вас есть бот Telegram, работающий 24 часа в сутки, 7 дней в неделю, без вашего вмешательства. Вы можете добавить к боту любую логику, которую хотите, например, вы можете сделать своего бота более реалистичным, добавив статус «печатание» и отправив статус фотографии следующим образом:

Следующий фрагмент кода из response() Функция :

, если текст == "/start":
       # напечатать приветственное сообщение
       bot_welcome = """
       Добро пожаловать в бот coolAvatar, бот использует сервис http://avatars. adorable.io/ для создания классных аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
       """
       # отправить приветственное сообщение
       bot.sendChatAction(chat_id=chat_id, action="ввод")
       сон(1.5)
       bot.sendMessage(chat_id=chat_id, text=bot_welcome, answer_to_message_id=msg_id)
   еще:
       пытаться:
           # очищаем полученное сообщение от любых не алфавитов
           текст = re.sub(r"\W", "_", текст)
           # создайте ссылку API для аватара на основе http://avatars.adorable.io/
           url = "https://api.adorable.io/avatars/285/{}.png".format(text.strip())
           # ответьте фотографией на имя, которое прислал пользователь,
           # обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram доставит их для вас
           bot.sendChatAction(chat_id=chat_id, action="upload_photo")
           спать(2)
           bot.sendPhoto(chat_id=chat_id, фото=url, answer_to_message_id=msg_id)
       кроме исключения:
           # если что-то пошло не так
           bot. sendMessage(chat_id=chat_id, text="Возникла проблема с именем, которое вы использовали, введите другое имя", answer_to_message_id=msg_id)
 

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

Вы также можете изменить изображение и описание бота с канала BotFather, чтобы сделать его более дружелюбным.

Многие другие простые примеры ботов для телеграмм можно найти на странице python-telegram-bot на GitHub.

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

 . 
├── app.py
├── телебот
│ ├── учетные данные.py
│ ├──ai.py
│ | .
│ | Здесь вы можете построить свой двигатель
│ | .
│ └── __init__.py
└── ботенв
 

И внутри ai .py :

 по определению generate_smart_reply(текст):
    # здесь мы можем делать всю нашу работу
    вернуть "это умный ответ от ИИ!"
 

Импортируйте сейчас в приложение .py :

 import re
из времени импортировать сон
из фляги импорт фляги, запрос
импортная телеграмма
Из telebot.ai импортируйте generate_smart_reply
из telebot.credentials импортировать bot_token, bot_user_name, URL
 

Затем просто вызовите его внутри кода response() .

 по умолчанию ответить():
   # получить сообщение в формате JSON, а затем преобразовать его в объект Telegram
   update = telegram.Update.de_json(request.get_json(force=True), бот)
   chat_id = update.message.chat.id
   msg_id = обновление.сообщение.message_id
   # Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с юникодом
   текст = обновить. сообщение.текст.кодировать('utf-8').декодировать()
   # только для отладки
   print("получил текстовое сообщение:", текст)
   # здесь вызовите свое смарт-ответное сообщение
   ответ = generate_smart_reply(текст)
   bot.sendMessage(chat_id=chat_id, текст=ответ, answer_to_message_id=msg_id)
 

Теперь вы можете заставить своего бота работать так, как вы хотите, — вперед и создайте следующую большую вещь!

Надеюсь, вам было интересно научиться создавать бота Telegram на Python.

Дополнительные ресурсы

  • Создание чат-бота с использованием Telegram и Python
  • Простая настройка веб-хука Telegram Bot
  • Репозиторий Python-телеграммы
  • Развертывание с помощью Git на Heroku
  • Документация Python Telegram Bot

Родственный:
Создайте чат-бота WhatsApp, а не приложение

Понимание основ

  • Что такое бот Telegram?

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

  • Безопасны ли боты Telegram?

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

  • Для чего нужен Flask?

    Flask — микровеб-фреймворк, написанный на Python. Мы использовали его для создания нашего веб-сервера с минимальными усилиями.

  • Какова цель Heroku?

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

Подключить бота Bot Framework к Telegram — Bot Service

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья

ПРИМЕНЯЕТСЯ К: SDK v4

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

Совет

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

Предварительные условия

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

Создайте нового бота Telegram с помощью BotFather

Создайте бота Telegram с помощью BotFather перед подключением вашего бота к Telegram.

  1. Начните новый разговор с BotFather.

  2. Отправьте /newbot , чтобы создать нового бота Telegram.

  3. При появлении запроса введите имя бота.

  4. Дайте боту Telegram уникальное имя пользователя. Обратите внимание, что имя бота должно заканчиваться словом «bot» (без учета регистра).

  5. Скопируйте и сохраните токен доступа бота Telegram для последующих шагов.

Настройка Telegram на портале Azure

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

  1. Войдите на портал Azure.
  2. Перейдите к своему боту. Затем выберите Каналы из Настройки .
  3. Выберите Telegram из списка доступных каналов .
  4. Введите ранее скопированный токен в поле Токен доступа и выберите Применить .

Теперь ваш бот успешно настроен для общения с пользователями в Telegram.

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