от первой строчки до запуска на Heroku
Напишем простой диалоговый Telegram-бот на Python и запустим его на сервере Heroku.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
- Настройка
- Hello, bot!
- Деплой на Heroku
- Заключение
Настройка
Откройте Telegram, найдите @BotFather и начните беседу. Отправьте команду /newbot
и следуйте инструкциям. Вы получите:
- свой токен;
- адрес Telegram API;
- ссылку на документацию.
Обязательно сохраните токен, так как это ключ для взаимодействия с ботом.
Примечание Хранение токена должно быть локальным: ни в коем случае не выгружайте его в общий доступ.
Далее начните беседу с ботом. Введите в поисковой строке его имя и нажмите /start
. Отправьте любое сообщение: оно станет первым обновлением, которое получит бот.
Установка Python
Для написания Telegram-бота на Python, нужно установить сам язык.
Тем, кто только начал изучение этого языка, будет также полезна дорожная карта Python-разработчика.
Установка pip
Это менеджер пакетов. В версиях выше Python 2.7.9 и Python 3.4, а также на macOS/Linux он уже есть. Проверить это можно командой pip --version
в терминале. Если же по каким-то причинам он отсутствует, установить его можно при помощи команды:
$ sudo apt-get install python-pip
Установка pyTelegramBotAPI
Есть два способа установить эту библиотеку:
- С помощью pip:
pip install pytelegrambotapi
- Из исходников (требуется git):
$ git clone https://github.com/eternnoir/pyTelegramBotAPI.git $ cd pyTelegramBotAPI $ python setup.py install
Hello, bot!
Давайте напишем простенькую программу приветствия. Для начала следует импортировать библиотеку и подключить токен Telegram-бота на Python:
import telebot
bot = telebot.TeleBot('TOKEN')
Теперь напишем обработчик текстовых сообщений, который будет обрабатывать входящие команды
и /help
:
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, f'Я бот. Приятно познакомиться, {message.from_user.first_name}')
Добавим ещё один обработчик для получения текстовых сообщений. Если бот получит «Привет», он также поздоровается. Все остальные сообщения будут определены, как нераспознанные:
@bot.message_handler(content_types=['text']) def get_text_messages(message): if message.text.lower() == 'привет': bot.send_message(message.from_user.id, 'Привет!') else: bot.send_message(message.from_user.id, 'Не понимаю, что это значит.')
Запускаем бота следующей строкой:
bot. polling(none_stop=True)
Примечание Так мы задаём боту непрерывное отслеживание новых сообщений. Если бот упадёт, а сообщения продолжат поступать, они будут накапливаться в течение 24 часов на серверах Telegram, и в случае восстановления бота прилетят ему все сразу.
Ну вот и всё, простенький бот в Телеграмме готов.
Деплой Телеграм-бота на Heroku
Последним шагом будет развёртывание бота на сервере. Зарегистрируйтесь на GitHub, если у вас ещё нет там аккаунта, и установите Git. Для этого на Linux выполните следующую команду:
$ sudo apt-get install git-all
На macOS и Windows его нужно скачать и установить вручную. И не забудьте зарегистрироваться на Heroku. Установите virtualenv:
$ pip install virtualenv
Создайте новую папку и перейдите в неё в терминале или командной строке. Инициализируйте в ней virtualenv
:
$ virtualenv my_env
Имя не имеет значения, но лучше сделать его интуитивно понятным.
my_env
. Теперь нужно склонировать git-репозиторий. Введите команду:$ git clone https://github.com/имя_вашего_профиля/имя_вашего_репозитория
Поместите скрипт в папку, полученную в результате выполнения команды git clone
. Вернитесь в папку my_env
и запустите virtualenv
:
- На Windows:
$ scripts\activate.bat
- На Linux/macOS:
$ source bin/activate
Если вы успешно запустили virtualenv
, приглашение командной строки должно начинаться с (my_env). Перейдите в папку репозитория и ещё раз установите модуль requests:
$ pip install requests
Теперь нужно создать список зависимостей Heroku. Это несложно. Введите:
$ pip freeze > requirements.txt
Создайте Procfile
. В этом файле следует разместить инструкции по работе со скриптом. Имя файла обязательно должно быть Procfile
(Procfile. windows
в случае с Windows). У него не должно быть других расширений. Содержимое файла должно быть таким (замените my_bot
на имя вашего скрипта):
web: python my_bot.py
Добавьте файл
в вашу папку. Он может быть пустым, но должен там быть. Отправьте коммит с изменениями в репозиторий:
$ git init
$ git add .
$ git commit -m 'короткое сообщение, описывающее изменения в коммите'
$ git push -u https://github.com/имя_вашего_профиля/имя_вашего_репозитория
Теперь развернём Telegram-бота на Heroku. Можно использовать и панель управления на сайте, но мы потренируемся делать всё через консоль.
Если вы пользуетесь macOS или Windows, установите интерфейс командной строки, следуя гайду. Если у вас Ubuntu, используйте следующие команды:
$ sudo add-apt-repository "deb https://cliassets.heroku.com/branches/stable/apt ./"
$ curl -L https://cli-assets.heroku.com/apt/release. key |
$ sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install heroku
Теперь выполните следующие команды:
$ heroku login
$ heroku create
$ git push heroku master
$ heroku ps:scale web=1
$ heroku open
С этого момента приложение должно работать на сервере Heroku. Если что-то пойдёт не так, проверить логи можно следующим образом:
$ heroku logs --tail
Заключение
Поздравляем! Теперь вы знаете, как создать бота в Телеграм.
Кроме того, Telegram bot на Python можно дополнять другими функциями, например, добавить отправку файлов, опрос или клавиатуру.
Кстати, в этом мессенджере есть два типа клавиатур:
- Классическая RelpyKeyboardMarkup, у которой кнопки располагаются под полем ввода сообщения:
- Более современная InlineKeyboardMarkup, которая привязывается к конкретному сообщению:
Но и это полностью рабочий Телеграм-бот на Python: дополните словарём и получите полноценную беседу. Также можете опробовать функциональность нашего Telegram-бота.
Адаптированный перевод «How to Create and Deploy a Telegram Bot?»
Создаем Telegram бота на Python часть-1
Существует множество различных статей и учебных пособий по созданию ботов для телеграмм, некоторые из них достаточно сложны, часть требует знания отдельных технологий и фреймворков. В данной статье мы рассмотрим создание чат бота в мессенджере Telegram с нуля. От нас не будет требоваться каких-то специальных знаний. Для начала достаточно будет начальных знаний языка Python в качестве языка программирования.
Часть 1: Регистрация нового Telegram Bot-а
Для начала вы должны быть зарегистрированы в Telegram- мессенджере. Далее, вы в мобильной, десктопной или web-версии мессенджера открываете общение с ботом @BotFather, либо по ссылке https://telegram.me/botfather.
После начала общения с этим ботом, нажав /start, вы получите ответ от бота с указанием его возможностей. Нас интересует создание нового бота — /newbot.
После того как мы введем /newbot нас попросят придумать имя для нашего нового бота. Пусть оно будет MyFirstTestBot.
Далее нам нужно придумать юзернэйм для нашего бота. В нашем случае это будет mft001_bot.
После этого BotFather высылает нам специальный токен:
Наш токен оказался: 851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM (В вашем случае токен будет другой.)
Этот токен понадобится нам при настройке нашего бота. Токен должен быть сохранён. Именно он является единственным ключем для взаимодействия с ботом.
Также мы получаем ссылку на нашего бота. В моем случае это t.me/mft001_bot.
Теперь наш Tekegram-бот создан. Мы можем начать настраивать своего бота, например, установить изображение для бота, изменить или добавить описание бота и тп.
С регистрацией бота мы закончили. Наш бот уже есть, но на данный момент он еще ничего не умеет. Теперь нам нужна его начинка – какой-то механизм, который будет обрабатывать наши запросы к этому боту и возвращать нам ответы.
Часть 2 Написание кода
Как и написано выше мы будем создавать нашего бота на языке Python. Установите его с официального сайта, если вы используете Windows или выполните команду в терминале на Linux:
sudo apt-get install python python-pip
Далее воспользуемся системой управления пакетами PIP, которая используется для установки и управления программными пакетами, и установим библиотеку PyTelegramBotAPI (Telebot):
pip
install
pytelegrambotapi –
user
Создадим логику работы нашего бота. Используя полноценный IDE или простой текстовый редактор создадим файл ourbot.py и заполним его необходимой логикой.
Для начала нам нужно выполнить импорт библиотеки PyTelegramBotAPI (Telebot), написав в нашем файле:
import telebot
Далее подключим нашего бота, используя полученный ранее токен:
bot = telebot.TeleBot(‘851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM’)
Теперь создадим метод, для получения сообщений.
Возможности PyTelegramBotAPI позволяют отправлять боту аудио (content_types=[‘audio’), видео (content_types=[‘video’), документы (content_types=[‘document’), текст (content_types=[‘text’), географический адрес (content_types=[‘location’), данные контакта (content_types=[‘contact’) и стикеры (content_types=[‘sticker’). Мы, для простоты опыта, будем общаться с ботом только текстом:
@bot.message_handler(content_types=[‘text’])
def handle_text_messages(message):
Теперь рассмотрим логику обработки наших текстовых сообщений. Мы хотим захардкодить простое общение бота с пользователем: бот должен уметь здороваться, когда с ним здороваются, уметь отвечать на вопросы «Кто ты?», «Как тебя зовут?» и «Что ты умеешь?».
if message.text == «Привет»:
bot.send_message(message.from_user.id, «Привет»)
elif message.text == «Кто ты?»:
bot.send_message(message.from_user.id, «Я тестовый чатбот для учебного примера.»)
elif message. text == «Как тебя зовут?»:
bot.send_message(message.from_user.id, «Меня зовут MyFirstTestBot.»)
elif message.text == «Что ты умеешь?»:
bot.send_message(message.from_user.id, «Я умею отвечать на несколько простых вопросов — кто я, как меня зовут и что я умею делать.»)
else:
bot.send_message(message.from_user.id, «Я тебя не понимаю. Напиши что-то другое.»)
После тела метода, обрабатывающего наши запросы к боту, добавим вызов метода:
bot.polling(none_stop=True, interval=0)
Задачей этого метода является создание потока, в котором бот отправляет запросы на сервер, уточняя таким способом, не писал ли ему кто-то сообщение. Параметр none_stop: False означает, что наша программа будет продолжать отправлять запросы на сервер после получения сообщения об ошибке от сервера Telegram.
Сохраним наш код:
Мы можем протестировать работу нашего бота, запустив его код в той IDE, в которой мы писали. И написав нашему боту в мессенджере.
Все работает.
Наш учебный Telegram-бот создан. Мы можем запустить наш файл локально, и он будет отрабатывать запросы к нему через мессенджер прямо на нашем компьютере, выступающим в роли сервера. Но это не очень удобная практика. Для нормальной работы код желательно залить на отдельный сервер и запустить его там.
Вопросы заливки нашего простого бота на сервер мы рассмотрим в следующей статье.
Резюме
Как мы увидели, создание работающего бота на Python для Telegram мессенджера достаточно просто. Для простых ботов не нужно использовать сложные решения — есть удобная библиотека PyTelegramBotAPI, позволяющая решить такие задачи. В нашем учебном примере мы рассмотрели только работу с текстом, но, благодаря этой библиотеке, бот может работать и с другими форматами данных. Попробуйте сами сделать своего бота, отвечающего на ваши вопросы.
С нашей стороны мы рекомендуем ознакомиться с курсом подготовки Python-разработчика. Знания, полученные после прохождения данного курса позволят вам не только создавать различные приложения, но и получить полноценную профессию разработчика программного обеспечения.
Создание бота в Telegram. Основы
Telegram, на практике, оказывается не только надежным мессенджером для личных переписок, но и удобной платформой для автоматизации множества действий, вроде запросов информации, при помощи ботов. При этом, сам процесс создания такого автоматизированного помощника доступен даже без особенно больших познаний в программировании — для относительно простых вариантов с умеренной функциональностью достаточно будет базового владения выбранного для реализации идеи языка.
С чего начинать создание бота в Телеграмме?
Прежде чем приступать к работе над кодом бота Telegram, имеет смысл его зарегистрировать. Что хорошо, сам этот процесс очень простой и полностью автоматизирован:
- Начинаете чат с аккаунтом @BotFather;
- Вводите базовую команду на создание нового бота /newbot;
- Отправляете предпочитаемое вами имя для нового бота и его юзернейм, который обязательно должен заканчиваться на “bot”;
- Получаете уникальный токен;
- При желании, сразу можно ввести описание для бота, список его команд и подходящее изображение или отложить эти действия на потом.
Обратите внимание, что когда вы выполняете создание чат бота в Telegram, полученный токен должен оставаться известным только вам, иначе не исключен злонамеренный перехват управления.
Выбор языка программирования и хостинга
Функциональность Telegram-бота можно реализовать различными путями, каждый из которых имеет свои преимущества. Так, создание чат бота в Телеграмме достаточно просто выполняется следующими способами:
- С использованием Microsoft Visual Studio. В качестве языка программирования в этом случае рационально будет выбрать C# или Node.js. При этом, вам не понадобится с нуля писать большие массивы кода — гораздо проще воспользоваться готовым набором шаблонов, таких как Bot Application, Bot Framework Emulator, Bot Dialog и Bot Controller. Всю необходимую информацию об их установке и использовании содержит документация Microsoft Bot Framework, вам же останется только настроить эти шаблоны под свои требования. Естественно, такой вариант подходит в полной мере только для пользователей Windows.
- Среди других вариантов выполнить в Telegram создание бота, PHP также дает немало возможностей. Прежде всего, стоит иметь в виду большую популярность этого языка программирования — если что-то пойдет не так, всегда найдется с кем проконсультироваться. Также подкупает и наличие уже готовых библиотек для работы с Телеграмм, таких, например, как Telegram Bot SDK, позволяющая свести ваши усилия к минимуму.
- Наконец, среди языков программирования, позволяющих быстро и беспроблемно выполнить создание бота в Телеграмме, Python является одним из наиболее популярных решений. В основном это связано с широкими возможностями, доступными как при использовании стандартных библиотек, так и с применением уже готовых вариантов, таких как PyTelagramBotAPI, рассчитанных на работу непосредственно с Telegram.
Конечно, когда вам нужен полноценно работающий Telegram бот, создание его окажется только половиной необходимой работы. Вторым обязательным этапом станет обеспечение его бесперебойной работы, для чего необходимо подобрать надежный и доступный по цене сервер. К счастью, существует достаточно немало вполне подходящих бесплатных решений, таких как Azure или Heroku, однако, если вас интересует неограниченная функциональность Telegram стоит отдать предпочтение платным облачным вариантам.
Как создать Telegram бота с помощью Python | by Evgeny Vladimirovich | NOP::Nuances of Programming
Photo by Florencia Potter on UnsplashПредставьте, что у вас есть бот в мессенджере, который присылает вам случайно выбранную картинку с собачкой, когда вам захочется. Звучит здорово, да? Давайте сделаем такого.
В этом уроке мы будем использовать Python 3, библиотеку python-telegram-bot и публичный API RandomDog.
В конце урока у вас будет свой бот для снятия стресса, который будет присылать вам милых пёсиков, когда захотите.
Перед тем как писать программу, нам нужно сгенерировать токен для нашего бота. Токен понадобится для доступа к API Telegram’а, и установки необходимых зависимостей.
1. Создаём нового бота в BotFather
Если вы задумали создавать бота для Telegram, сначала его нужно зарегистрировать, перед тем как использовать. Когда вы регистрируете бота, вы получаете токен для доступа к API Telegram’а
Перейдите по ссылке BotFather (у вас должно быть установлено приложение Telegram) и создайте нового бота, отправив команду /newbot
. Следуйте инструкциям, пока не получите имя пользователя и токен для вашего бота. Ссылка для доступа к боту выглядит так: https://telegram.me/YOUR_BOT_USERNAME
, а токен вот так:
704418931:AAEtcZ*************
2. Устанавливаем библиотеку
Команда для установки библиотеки:
pip3 install python-telegram-bot
Если всё прошло гладко, то можно двигаться дальше.
Наш бот должен возвращать изображение с пёсиком, когда мы отправляем команду /bop
. Генерировать случайные изображения, нам поможет публичным API от RandomDog.
Рабочий процесс нашего бота очень прост:
запрос к API -> получить URL изображение -> отправить изображение
1. Импорт библиотек
Для начала импортируем все нужные библиотеки.
from telegram.ext import Updater, CommandHandler
import requests
import re
2. Доступ к API и получение URL изображения
Давайте создадим функцию для получения URL. Используя библиотеку запросов, мы можем обратится к API и получить json данные.
contents = requests.get('https://random.dog/woof.json').json()
Проверить json данные можно в браузере по ссылке https://random.dog/woof.json
. Вы увидите что-то вроде этого:
{“url":"https://random.dog/*****.JPG"}
Получаем URL, чтобы иметь возможность отправить изображение:
image_url = contents['url']
Оформим этот код в виде функции get_url()
.
def get_url():
contents = requests. get('https://random.dog/woof.json').json()
url = contents['url']
return url
3. Отправляем картинку
Чтобы отправить сообщение/изображение, нам понадобится два параметра: URL изображения и ID получателя — это может быть ID группы или ID пользователя.
Получить URL изображения можно вызвав функцию get_url()
.
url = get_url()
Чтобы получить ID получателя, используйте этот код:
chat_id = update.message.chat_id
После того как мы получили URL изображения и ID получателя, пришло время отправить сообщение, т.е. изображение.
bot.send_photo(chat_id=chat_id, photo=url)
Оберните код в функцию bop
и убедитесь, что код выглядит следующим образом:
def bop(bot, update):
url = get_url()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, photo=url)
4. Основная программа
И наконец, создайте ещё одну функцию с именем main
, чтобы запускать программу. Не забудьте заменить YOUR_TOKEN
на токен, который вы сгенерировали ранее.
def main():
updater = Updater('YOUR_TOKEN')
dp = updater.dispatcher
dp.add_handler(CommandHandler('bop',bop))
updater.start_polling()
updater.idle()if name == '__main__':
main()
В итоге, ваш код должен выглядеть вот так:
from telegram.ext import Updater, InlineQueryHandler, CommandHandler
import requests
import redef get_url():
contents = requests.get('https://random.dog/woof.json').json()
url = contents['url']
return urldef bop(bot, update):
url = get_url()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, photo=url)def main():
updater = Updater('YOUR_TOKEN')
dp = updater.dispatcher
dp.add_handler(CommandHandler('bop',bop))
updater.start_polling()
updater.idle()if __name__ == '__main__':
main()
5. Запуск программы
Отлично! Мы почти закончили. Давайте проверим работу программы. Сохраните файл и назовите его main.py
. Теперь её можно запускать, командой:
python3 main.py
Запустите бота перейдя по ссылке https://telegram.me/YOUR_BOT_USERNAME
. Отправьте команду /bop
. Если всё работает как надо, вы увидите случайное изображение с пёсиком. Миленько.
Отлично! Теперь у вас есть работающий бот.
Есть ещё кое-что. API RandomDog генерирует не только изображения, но ещё видео и гифки. Мы не сможем получить видео или GIF от API, потому что произойдёт ошибка.
Давайте это исправим, чтобы бот отправлял нам только изображения. Если нам попадётся видео или GIF, мы снова будем вызывать API, пока не получим изображение.
1. Проверяем расширение файла с помощью регулярного выражения
Чтобы решить эту проблемы, мы будем использовать регулярное выражение.
Отличить изображение от видео или GIF, можно по расширению файла. Нам понадобится последняя часть URL. .]*)$»,url).group(1).lower()
return urldef bop(bot, update):
url = get_image_url()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, photo=url)def main():
updater = Updater(‘YOUR_TOKEN’)
dp = updater.dispatcher
dp.add_handler(CommandHandler(‘bop’,bop))
updater.start_polling()
updater.idle()if __name__ == ‘__main__’:
main()
Всё должно работать идеально. Этот код можно найти на моём GitHub.
Поздравляю с окончанием урока, теперь у вас есть классный бот для Telegram.
Перевод статьи Dzaky Widya Putra: Learn to build your first bot in Telegram with Python
Как создать чат-бот в Telegram без знаний программирования
Хочется упростить коммуникацию с клиентами в своём telegram-канале — сделайте чат-бота! Он может действительно всё, только правильно его запрограммируй.
Нужна разгрузка техподдержки? Настройте бота так, чтобы он отвечал на все FAQ, а при необходимости переадресовывал на реальных сотрудников. Ноль в программировании? Давно не проблема, это можно сделать без специальных знаний. А с гайдом поможем мы.
Почему нужно завести чат-бота в Telegram
Составили список причин, почему вам нужен чат-бот. На самом деле их намного больше, но как фанаты Игоря Николаева, выделили основные 5:
- Это бесплатно. Никто вас не заставляет платить за создание бота (пока что).
- Весь бизнес переходит в смартфоны и мессенджеры, поэтому наличие бота будет несомненным плюсом для вашей компании.
- Быстрая и простая настройка. Большинство базовых функций можно реализовать и без знания программирования.
- Неограниченное количество подписчиков. Если в имейл-рассылке нужно оплачивать сервис, то здесь вы никому не должны (пока что).
- Можно в любой момент вносить изменения. Не нужно ждать, пока программист полностью перепишет бота ради того, чтобы добавить/удалить несколько команд.
Что может делать телеграм-бот
Всё зависит от ваших желаний. Если вы наймете программиста, который сможет прописать код, то бот сможет даже принимать заказы и сразу грузить их в CMS-админку. У бота, сделанного по упрощённой схеме, функций поменьше, но они полностью перекрывают основные потребности:
- Выдавать заготовленный текст.
- Делать текст с кнопкой реакции (которую можно запрограммировать на что угодно: переход на сайт, в чью-то личку, комментарии).
- Собирать лиды.
- Задавать вопросы и ответы на них.
- Переадресовывать на службу техподдержки.
- Делать кросспостинг и рассылку.
- Принимать заказы.
Создание бота
Изначально нам следует начать чат с @Manybot. Именно он поможет нам создать своего бота.
Вводим команду «Добавить нового бота».
Теперь мы увидим, что делать дальше:
Назовите бота. Именно это и будет логином бота, через который люди будут его искать в будущем.
Теперь вернитесь к @Manybot и введите этот токен.
Введите описание для стартовой страницы своего бота и нажмите Enter.
Всё, основная работа сделана!
Вернитесь к @BotFather, чтобы добавить описание для боковой панели и аватар бота.
Список команд BotFather
Основные настройки:
- /newbot — создать бота;
- /mybots — редактирование бота [beta];
- /setname — изменить имя бота;
- /setdescription — изменить описание бота;
- /setabouttext — изменить блок “about info”;
- /setuserpic — изменить аватар бота;
- /setcommands — изменить лист команд;
- /deletebot — удалить бота.
Настройки бота:
- /token — сгенерировать токен;
- /revoke — revoke bot access token;
- /setinline — переключить режим;
- /setinlinegeo — переключить запросы локации;
- /setinlinefeedback — изменить настройки фидбека;
- /setjoingroups — указать, можно ли добавить бота в группы;
- /setprivacy — изменить режим приватности в группах.
Игры:
- /mygames — редактировать игры [beta];
- /newgame — создать игру;
- /listgames — список игр;
- /editgame — редактировать игру;
- /deletegame — удалить существующую игру.
С его помощью мы настроим базовые вещи, связанные с ботом: можно ли его добавлять в чаты; описание, которое появляется в окне; аватарка; список команд. Более подробная настройка происходит уже внутри самого бота.
Прежде чем перейти к настройке, распишите отдельно на листочке или создайте mind map: это даст вам четкий алгоритм работы и избавит от постоянных правок.
Аватарка добавляется через команду /setuserpic.
Всё, теперь у вас не голый бот 🙂
Теперь устанавливаем about info с помощью /setabouttext.
Если всё прошло успешно, то должно будет выглядеть вот так:
Теперь начинаем настройку команд внутри бота.
Если вы создаёте бота, который просто будет репостить все посты в телеграм, то вам даже не нужно ничего делать. Просто добавьте сюда ссылки на свои страницы и все будет готово.
Теперь нам стала видна панель настроек. Не бойтесь, будущие пользователи её не увидят:
Далее следует прописать все команды.
Выбираем «Пользовательские команды» , далее «Создать команду» и вписываем само название будущей команды. Допустим, «График работы» или «Адреса самовывоза».
Придумываете команду для бота: для этого нужно ввести символ «/» и прописать название команды латиницей. Пример: /arrivals, /shop, /contacts, /aboutcompany. После этого пишем текст, который должен будет выдаваться пользователям после выбора команды.
Представьте, кто-то захотел узнать ваши контакты. Клиент должен будет ввести /contacts или нажать кнопку «Контакты» и ему высветятся все возможности связаться с вами, которые вы ранее прописали. Теперь сделайте команду видимой: зайдите в главное меню и нажмите на кнопку «настроить главное меню»
После этого мы прописываем ответ и нажимаем на кнопку «Сохранить».
Теперь заносим команду в главное меню (делаем её кнопкой) и даем ей название.
Выберите «Настроить главное меню».
Теперь кликните на «+Добавить пункт меню+»
Теперь пропишите желаемое название команды:
Profit!
Повторяйте это столько раз, сколько вам нужно, связывая команды в разветвленную сеть. Не бойтесь, пользователи будут видеть только публично доступные кнопки, а административные останутся вне их поля доступа. Как видите, сделать бота для телеграм намного проще, чем можно представить!
Чат-боты для бизнеса. Заказать разработку и создание чат-бота telegram, viber.
Создание чат ботов — «GERABOT»
Чат-боты на заказ: все, что вы хотели знать
Перенос активного общения из реальной жизни в online показал необходимость создания виртуального собеседника. Он призван оказать помощь в сферах бизнеса, где диалог с клиентом занимает значительную часть рабочего времени. Для таких целей и были разработаны чат-боты – специальные программы, которые, по заданному алгоритму имитируют живой диалог с пользователем путем подбора ответов по заданным ключевым словам.
Иными словами, чат-бот – виртуальный собеседник для реального человека, который обращается в чат компании, чтобы получить ответ на интересующий его вопрос. Сегодня такую технологию можно встретить уже на довольно большом числе онлайн платформ. Они стали незаменимыми помощниками и их популярность среди владельцев интернет ресурсов неизменно растёт. Причем они закрывают задачи не только по части общения. Чат-боты помогают пользователям в подборе товаров и услуг, а также успешно заменили системы регистрации и формы заявок.
Как работают чат-боты
Любой бот основан на определенной программе, в которой прописан алгоритм подбора ответов на вопрос клиента (с учетом ключевых слов). Бот имитирует общение в чате с реальным собеседником. Если алгоритм разработан правильно, а диалоги проработаны с максимальным количеством возможных вариантов ответов на «ключи», собеседник может не заметить, что общался с ботом. Как правило, в простых вопросах подключение оператора к диалогу может не потребоваться.
База софта – семантика возможных запросов, которые разбиваются на слова и при помощи анализатора подбираются оптимальные варианты ответа на основании найденных в запросе ключевых слов.
Следует учесть, что боты пока еще не в состоянии заменить живого человека, и при возникновении сложных вопросов со стороны клиента необходимость ответа оператора все же может возникнуть.
Преимущества chat-bot:
- возможность оптимизировать количество операторов компании, где на простые вопросы или часть приветствия и фильтра запросов отвечают боты
- может работать на всех платформах, где есть мессенджер
- высокая скорость получения ответа на запрос клиента
- возможность работы 24\7
- разработка чат-бота под конкретные потребности бизнеса
Современные технологии позволяют бизнесу упрощать систему общения и обработки данных, освобождая ресурсы для проведения более важных активностей.
Кому нужны чат-боты
Сферы, где используется софт, с каждым днём расширяются. На данный момент наиболее востребованы программы в таких направлениях, как:
- e-commerce – одна из самых распространённых направлений в применении чат-ботов. Прежде всего, они экономят человеческий ресурс и дают возможность не упускать запросы от клиентов даже ночью, так как работают 24\7
- рестораны – помогают принимать заказы, оформить доставку, забронировать столик, и т.д.
- медицина – современные клиники используют для оформления записи к врачу, вызова врача и получения результатов анализов
- коммунальные услуги – используются для подачи запроса на ремонт, передачи данных счетчиков, вызова служб
- финансовые учреждения – устанавливают для активации или закрытия карт, получения переводов, ответов на популярные вопросы, и пр.
С каждым годом направления, где используются разработки в сфере ботов, расширяются. Это связано и с развитием возможностей самого софта, так как разработки не стоят на месте. Если в истоках появления программы могли выполнять только простые задачи, то сегодня – это уже сложное ПО с применением искусственного интеллекта.
Какие бывают чат-боты
Программы имеют различный функционал, в зависимости от сферы, в которой они будут применяться.
Можно выделить такие виды ботов, как:
- консультанты – отвечают на распространённые вопросы пользователей, используются в большинстве случаем в коммерческих целях
- помощники – используются для оказания помощи в определенных задачах, к примеру – в заказе такси или подборе размера одежды
- развлекательные – применяют в разработке игр, проведении викторин, и пр.
- чат бот для бизнеса – используются для внутренних CRM систем, помогают структурировать бизнес, применяются для внутренних процессов.
К какому бы из видов ботов не относилась программа, главная её цель – упростить работу над определенной задачей. Разработать такое ПО важно с учетом всех особенностей конкретного запроса. Бот обязан решать проблему, с которой обратился заказчик.
Сколько стоит чат-бот
Цены на разработку программы зависят от многих факторов и, прежде всего, — от сложности алгоритма, по которому она будет работать.
Сегодня «написать» бот может разработчик с небольшим опытом. Но здесь важно учесть не только скорость ответа, а и корректность алгоритма, правильный подбор семантики и даже такой фактор, как орфографию и стилистику ответов.
Принимая решение на заказ бота, следует учесть все факторы и определиться, отдать ли его на фриланс, или все же выбрать агентство. В последнем варианте есть явные преимущества:
- над проектом будет работать не один разработчик, а целая команда, которая сделает проект под ключ
- гарантия качественного продукта
- заключение договора
- возможность выбирать формы оплаты
- поддержка разработанного софта в дальнейшем
Определиться, сколько стоит продукт под ваш запрос помогут менеджеры проекта. Они детально изучат потребности вашего бизнеса и предложат оптимальный вариант.
Примеры самых лучших чат-ботов
Конечно, есть примеры, которые показывают успешность работы созданного софта для компаний. Широко распространёнными и наиболее эффективными являются чат-боты на основании мессенджеров Facebook, Telegram и Viber (Вайбер).
- Поисковик авиабилетов Skyscanner
Использует в качестве базы фейсбук мессенджер. Для приобретения билетов необходимо ввести даты вылета и аэропорт, и система сама подберет наиболее привлекательные варианты по стоимости.
- Интернет-магазин Ebay
Уже в чате переписки предлагает перейти сразу к выбору товара. Помогает подобрать оптимальные варианты с учетом введенных пользователем критериев по типу одежды, размеру, цвету и другим характеристикам. Работает на базе фейсбук мессенджер.
- ПриватБанк
Клиенты финансового учреждения могут общаться с ботом, решая многие вопросы касательно своих счетов. Работает на основе Телеграмм канала
- Cервис такси Uber
С его помощью клиент может вызвать авто, а также следить онлайн за его движением по пути к точке встречи. На базе ФБ месенджера.
- Госструктура, сайт iGov
Бот, разработанный для поиска места в очереди на получение загранпаспорта. Не нужно сидеть в очереди, достаточно просто зарегистрироваться и прийти в указанное время.
- Мобильный оператор Киевстар
Имеет чат бот «Зоряна» для трех мессенджеров – в Телеграмм, Вайбер и Мессенджер. Помогает клиентам узнать об актуальных тарифах и услугах, а также может просто пообщаться и даже рассказать стихи Лины Костенко или Тараса Шевченко.
- Почтовый сервис Tracker
В телеграмм канале можно отследить посылку самых популярных почтовых операторов – Укрпочты, Новой Почты, Meest Express и Delivery. Достаточно просто ввести номер трека посылки.
Данный перечень – далеко не полный. Но по нему видно, насколько разноплановые задачи выполняют в наше время чат-боты.
Наше агентство предоставляет услуги для бизнеса, в том числе – и разработку чат-ботов. Специалисты компании работают над тем, чтобы заказчик получил качественный продукт, удовлетворяющий его запросы. Мы готовы к сложным задачам и можем предложить результат, не уступающий самым популярным современным решениям. Разработка чат-бота (Украина, Киев и другие регионы) – наш профиль. Работаем над задачей, используя передовые технологии и разработки, предлагаем клиентам только лучшее. Наше агентство имеет опыт разработки софта для крупных и мелких компаний, знает, предоставит всю необходимую информацию и окажет информационную поддержку на этапе выбора продукта под свои индивидуальные потребности. Обращайтесь, мы знаем, какой вариант бота нужен, чтобы он стал незаменимым помощник вашего бизнеса!
Как сделать Телеграм-бота для тревел-проекта
Что умеют делать чат-боты и где они пригодятся
Ботами в Телеграме, других мессенджерах и социальных сетях уже никого не удивишь. Они могут облегчить работу менеджеров в интернет-магазине или туристическом агентстве, отвечать на вопросы по заданным шаблонам и помогать пользователям. Благодаря алгоритмам машинного обучения, чат-боты самостоятельно совершенствуются и расширяют границы возможностей.
По данным опросов крупнейшего разработчика программного обеспечения Oracle 80% компаний в мире планируют использовать чат-ботов в бизнес-процессах в 2020 году. За последние 3 года популярность ботов выросла в 5 раз. Этот тренд легко объясняется преимуществами, которые они дают: удерживают пользователей и разгружают сотрудников. Свежей статистики по использованию виртуальных помощников нет, но почти в каждой крупной компании есть минимум один бот.
Ботов можно научить:
- Продавать товары. Многие пользователи не любят заказывать в интернет-магазинах, потому что это долго и надо регистрироваться на сайте. С чат-ботом процесс выглядит более привлекательным.
- Отвечать на вопросы. Боты могут отвечать на вопросы пользователей по заданным шаблонам. Рассказывать, как создать учётную запись, найти статью на сайте или оформить бронь.
- Распространять контент. После подписки на уведомления фолловеры получат свежие новости, оповещения об акциях или тематические статьи.
- Вовлекать в жизнь проекта. Можно написать мини-игру, в которой бот будет проверять ответы участников и выдавать призы.
Главная суперспособность ботов — автоматизация рутины. Можно поручить искусственному интеллекту то, чем не нравится заниматься и сконцентрироваться на задачах, где не получится обойтись без личного участия.
Если считаете, что боты бесполезны для стандартных тревел-проектов, мы постараемся вас переубедить.
Вот какие задачи могут решать боты:
- Продажа инфопродуктов. В статье о способах монетизации блога мы рассказывали, что можно продавать путеводители по странам и другие инструкции, написанные на основе личного опыта. Для этих целей можно использовать бота. Он будет присылать ссылку на файл после оплаты и собирать обратную связь.
- Монетизация. Чат-бот может строить маршруты, предлагать авиабилеты или экскурсии с партнёрскими ссылками.
- Сбор целевой аудитории. Бот соберёт контакты тех, кто заинтересован в поездке на Байкал или каршеринге в Грузии. Останется только правильно преподнести им предложение и заработать на комиссии.
- Создание активного ядра. Информационные проекты чаще всего живут за счёт аудитории из поисковых систем. С помощью чат-ботов можно увеличить количество лояльных пользователей, которые будут постоянно участвовать в жизни проекта и снизить зависимость от Яндекса и Google.
- Кросспостинг. Бот может подгружать посты из Вконтакте или Одноклассников и публиковать их по расписанию в Телеграме.
- Решение других задач. Поиск сотрудников или попутчиков, сбор фидбека о проекте, массовые рассылки, проведение конкурсов.
Сфера применения чат-бота ограничена только фантазией и бюджетом создателя. При желании можно создать виртуального ассистента, который будет не только работать по заданным шаблонам, но и увеличивать знания благодаря постоянному обучению.
Преимущества и недостатки
Чат-боты не идеальны, они допускают ошибки, иногда отвечают невпопад, но неприятных ситуаций можно избежать на этапе проектирования. Чтобы лучше понять, как использовать виртуальных помощников и не потратить время зря, собрали их преимущества и недостатки.
Плюсы:
- Круглосуточная работа. Боты отвечают на вопросы, когда владелец спит, занят важными делами или уехал в отпуск. Это очень полезно, если вспомнить про разницу в часовых поясах и спонтанные поездки.
- Быстрый ответ. Пользователи не любят ждать. Если консультант не выйдет на связь в течение нескольких минут — они уйдут к конкурентам.
- Увеличение лояльности аудитории. Боты умеют запоминать предпочтения, сегментировать пользователей по запросам и предлагать им релевантные товары или услуги.
- Альтернатива мобильному приложению. Разработка полноценного продукта под смартфоны стоит дорого, а бот может частично решить его задачи.
- Автоматизация рутины. Обработку заявок, базовую презентацию продуктов и общение с пользователями можно поручить виртуальному помощнику.
- Контроль ситуации. Если бот не сможет найти ответ на вопрос, он отправит сигнал владельцу или ответственному сотруднику. По такой схеме работают виртуальные ассистенты крупных банков и IT-предприятий. Когда робот не может помочь, к разговору подключается техподдержка.
- Повышение конверсии. Люди редко читают письма по электронной почте, а в мессенджерах они проводят много времени. У рассылки в Telegram или Viber больше шансов заинтересовать целевую аудиторию.
- Знакомый интерфейс. Мы любим Телеграм за стабильную работу, защиту данных, удобство и постоянное развитие. Пользователям не надо изучать новое приложение или сайт, они будут пользоваться привычным инструментом.
- Непрерывное улучшение. Возможности ботов со временем увеличиваются. Возможно, через 10-15 лет они полностью заменят отделы продаж в компаниях.
- Лёгкая интеграция. Виджет с чат-ботом можно встроить на сайт или поделиться ссылкой в социальных сетях.
- Растущая популярность. Людям нравится общаться с ботами, если они решают их задачи и могут удивить.
- Небольшая стоимость. Бот требует крупных вложений только один раз, мелкие апдейты будут стоит дешевле.
Минусы:
- Негативный пользовательский опыт. Один неверный ответ — и доверие целевой аудитории потеряно.
- Возражения. Некоторые пользователи отказываются взаимодействовать с ботами. Им проще общаться в социальных сетях или посмотреть контент на сайте, чем запустить виртуального помощника.
- Подходят не для всех задач. Автоматизация помогает справляться с рутиной, но пока чат-боты не могут заменить людей.
По оценкам издания Tadviser боты достигнут пика продуктивности (смогут выполнять максимальное количество задач) через 3-5 лет. Прогнозы на 2020 года пока не оправдались, но ниша уверенно растёт.
В середине 2019 года было проведено исследование, которое показало, что у чат-ботов четырёхкратное преимущество перед неопытными сотрудниками. Пока новые члены входят в курс дела, виртуальные помощники уже консультируют по товарам и оформляют продажи.
Хотя по данным того же Tadviser, использование чат-ботов иногда уменьшает конверсию в клиентоориентированных проектах. Речь идёт о нишах, где важен контакт между продавцом и покупателем. Пока сложно представить, что можно будет купить машину по советам искусственного интеллекта, но вероятно и футуристичные идеи могут стать реальностью.
Примеры чат-ботов для travel-проектов
Чат-боты в тревеле активно используют крупные компании, владельцы информационных проектов и сервисов. Собрали несколько примеров, которые наглядно показывают перспективность использования виртуальных ассистентов.
Aviasales
В 2017 году у Aviasales появился чат-бот, который ищет аномально низкие цены на авиабилеты. Пользователи выбирают города вылета и прилёта, даты, размер скидки и дополнительные фильтры. При появлении билетов с заданными условиями, в мессенджер приходит уведомление.
Аффилиаты Travelpayouts могут зарабатывать на рекомендациях бота. Если пользователь установит бот по партнёрской ссылке и купит с его помощью билеты — продажа зачтётся аффилиату.
Tur Radar
Бот ищет дешёвые туры по заданным параметрам. Для получения уведомлений надо выбрать город вылета, список отслеживаемых стран и задать максимальную стоимость на человека. Подписчик получает подборку туров по выгодной цене, а владелец бота зарабатывает на рекомендациях и формирует базу лояльных клиентов.
RailwayBot
Отличный помощник для тех, кто часто ездит на поездах по городам Украины. Умеет проверять свободные места, мониторить билеты и показывать информацию о маршруте по номеру поезда. Для начала работы надо поделиться номером телефона, задать город отправления и прибытия.
Через несколько минут поиска пользователь получает готовый маршрут с временем прибытия. Если прямых рейсов нет, бот предлагает ознакомиться с транзитными маршрутами.
ZachekinBot
Чат-бот от российского авиаперевозчика «Аэрофлот». Помогает удалённо зарегистрироваться на рейс. Для оформления посадки надо прислать код бронирования и фамилию. Виртуальный помощник позволит выбрать удобные места, подгрузит данные о программах лояльности и сгенерирует посадочный талон.
Пример с «Аэрофлотом» показывает, что бота можно научить чему угодно. Он не просто обрабатывает полученную информацию, а проверяет данные по базе и берёт на себя задачи сотрудников аэропорта.
Как сделать чат-бота для Телеграма
Создать простого бота не так сложно, как может показаться со стороны. Собрать простого помощника из готовых компонентов можно с помощью сервисов, например Manybot или Botmother. Мы уже готовим обзор этих и других сервисов, скоро он выйдет в блоге.
Для решения нестандартных задач не обойтись без помощи опытного разработчика. Например, чтобы создать инструмент, вроде RailwayBot, понадобится доступ к API железнодорожной компании и вычислительные мощности для быстрой обработки запросов.
Пошаговая инструкция по созданию бота
Процесс создания состоит из нескольких этапов. Выполняйте шаги последовательно, чтобы в конце получить идеально работающий механизм.
Опишите, что будет делать бот
На первом этапе разработки надо выяснить, какие задачи должен решать виртуальный ассистент. Лучше заранее предусмотреть увеличение возможностей в будущем, чтобы не пришлось переписывать бота с нуля. Если хотите создать умную систему бронирования билетов на все виды транспорта — начните с поездов или самолётов и постепенно добавляйте модули.
Что надо сделать на первом шаге:
- Определить задачи.
- Выяснить особенности и потребности целевой аудитории.
- Продумать алгоритм работы.
- Составить техническое задание.
Путешественникам важна оперативность, надёжность и безопасность. Сделайте бота максимально простым, удобным и полезным, чтобы представители целевой аудитории оценили его преимущества и добавили в список повседневных инструментов.
Если вы создаёте продукт для узкой ниши, нужно выяснить максимум информации о пользователях. Предпочтения тех, кто привык ездить на поездах и летать на самолётах сильно отличаются. Некоторые путешественники выбирают исключительно прямые рейсы, а другие не против сэкономить благодаря транзитным маршрутам. Все это надо учитывать на этапе разработки бота.
Напишите алгоритм работы чат-бота
После проработки целей и задач, переходим к следующему этапу — визуализации алгоритма работы. Для этого не нужны знания программирования, надо просто составить блок-схему из последовательных шагов. Пользователь активирует бота командой, использует встроенное меню для выбора функции, задаёт дополнительные фильтры и получает результат.
На выходе обязательно должно быть целевое действие — подписка на рассылку, чек заказа или файл. Надо сделать алгоритм работы чат-бота максимально последовательным, чтобы на любом шаге не возникали проблемы. Виртуальный помощник работает по созданному шаблону, если он не найдёт ответа на вопрос, то упустит потенциального клиента или подписчика.
Алгоритм работы чат-бота удобно представлять в виде майнд-карт. Это инструмент визуализации, который позволяет конвертировать идею в схему из готовых блоков. В примере ниже расписан принцип работы бота гостиницы. Если пользователь выбирает пункт меню «Об отеле», в мессенджере отображаются связанные опции под разные виды размещений.
ИсточникДля создания майнд-карт отлично подходит программа Xmind, которая адаптирована под Windows, Linux и macOS. Готовую схему можно экспортировать в PNG или JPG и показать программисту или использовать для сборки бота в сервисе.
Выберите конструктор для создания бота
Мы уже говорили, что для создания простых чат-ботов не надо быть программистом. Существуют онлайн-сервисы, которые позволяют собрать виртуального ассистента по блокам в визуальном редакторе. Создаём бота в Botfather, получаем API-ключ, вставляем в настройках сервиса и можно приступать к разработке.
В список популярных конструкторов Телеграм-ботов входят Botmother, BotTap и Puzzlebot.
Протестируйте бота
Для создания полезного чат-бота мало хорошей идеи. Всё решает грамотная реализация и оперативное устранение багов. Перед публикацией проекта в открытый доступ надо проверить алгоритм работы, найти слабые места и закрыть их. Для тестирования лучше привлечь не только знакомых, но и 10-20 фрилансеров.
Найти тестировщиков можно на биржах фриланса, вроде Kwork или FL, но для этих задач лучше подходят сервисы формата Qcomment и Unu. В них можно размещать произвольные задания, гибко регулировать оплату и проверять качество работы каждого работника. В Qcomment есть фильтры по городам и устройствам. Это очень удобно, если надо протестить работу чат-бота в Санкт-Петербурге или Москве.
Для успешной работы с фрилансерами обязательно составьте алгоритм тестирования. Распишите по шагам, что они должны сделать и в каком виде прикрепить результат. Проверка чат-бота позволит определить недостатки и исправить их до релиза.
Если бот собирает ФИО, номер телефона или серию паспорта, обязательно создайте страницу с политикой использования персональных данных. Это можно сделать в удобном генераторе от Тильды.
На создание простого чат-бота уйдёт немного времени и денег, но надо внимательно контролировать весь процесс, чтобы перспективная идея не превратилось в инструмент, который испортит впечатление аудитории о сайте или компании.
Создание (и развертывание) интерактивного бота Telegram в Node.js
В этом руководстве будет выполнен простой набор шагов для создания и запуска отзывчивого бота Telegram с нуля.
Я потратил много времени на то, чтобы понять, как сделать функционального бота для телеграмм. Я имею в виду, конечно, официальное введение хорошее, но есть много вещей о том, что такое боты, и несколько разрозненных инструкций по API, но недостаточно структуры, чтобы новичок мог быстро начать работу.
Итак, вот как сделать отзывчивого бота для телеграмм на Node.js с наименьшими трудностями:
Если вы хотите узнать, как сделать бота Telegram на Go, вы можете прочитать другой мой пост
Настройте своего бота
Для этого не нужно писать код. Фактически, вам даже не нужен компьютер! Зайдите в приложение Telegram на своем телефоне и…
- Найдите телеграмм-бота «отец-бот» (именно он поможет вам в создании и управлении ботом)
- Введите
/ help
, чтобы увидеть все возможные команды, которые может обработать отец-бот - Нажмите или введите
/ newbot
, чтобы создать нового бота.
Следуйте инструкциям и дайте своему боту новое имя. Если вы создаете бота только для экспериментов, может быть полезно создать пространство имен для вашего бота, поместив свое имя перед ним в его имени пользователя, поскольку оно должно быть уникальным. Хотя его псевдоним может быть любым.
Я выбрал «Marco Polo Bot» в качестве имени экрана и «мой marco polo_bot» в качестве имени пользователя. - Поздравляем! Вы создали своего первого бота. Вы должны увидеть сгенерированный для него новый токен API (например, на предыдущем рисунке вы можете увидеть, что мой вновь сгенерированный токен —
777845702: AAFdPS_taJ3pTecEFv2jXkmbQfeOqVZGER
).Теперь вы можете искать своего вновь созданного бота в Telegram: - Давай, начни болтать со своим ботом! Что ж, это довольно обидно. Наш бот кажется глупым в том смысле, что не может ответить или сказать что-либо в ответ. Давайте позаботимся об этом, создав наш бот-сервер, который будет работать на внутренней стороне.
Настроить бот-сервер
Каждый раз, когда вы отправляете сообщение боту, он пересылает ваше сообщение в виде вызова API на сервер. Этот сервер обрабатывает и отвечает на все сообщения, которые вы отправляете боту.
Есть два способа получать обновления всякий раз, когда кто-то отправляет сообщения нашему боту:
- Длительный опрос: периодически просматривайте сообщения, которые могли появиться. Не рекомендуется.
- Webhooks: заставить бота вызывать API всякий раз, когда он получает сообщение. Намного быстрее и отзывчивее.
В этом руководстве мы будем использовать веб-перехватчики. Каждый веб-перехватчик вызывается с объектом обновления.Давайте создадим наш сервер для обработки этого обновления.
Мы будем создавать наш сервер с использованием node.js, но вы можете использовать все, что вам подходит, для создания своего сервера. После установки узла и npm:
Сначала инициализируйте свой проект
## Создайте новый каталог и войдите в него
mkdir мой-телеграмм-бот
cd мой-телеграмм-бот
## Инициализируйте свой проект npm
нпм инициализации
После выполнения инструкций вы получите файл package. json
.
Затем установите зависимости, запустив:
npm install --save express axios body-parser
-
express
— это наш сервер приложений -
axios
— это http-клиент -
body-parser
поможет нам разобрать тело ответа, полученное на каждый запрос
Сделайте новый файл index.js
:
var express = require ("экспресс")
вар приложение = экспресс ()
var bodyParser = require ("body-parser")
const axios = require ("axios")
app.use (bodyParser.json ())
app.use (
bodyParser.urlencoded ({
расширенный: правда,
})
)
app.post ("/ новое-сообщение", function (req, res) {
const {сообщение} = req.body
if (! message || message.text.toLowerCase (). indexOf ("marco") <0) {
вернуть res.end ()
}
аксиомы
.сообщение(
"https://api.telegram.org/bot777845702:AAFdPS_taJ3pTecEFv2jXkmbQfeOqVZGER/sendMessage",
{
chat_id: сообщение.chat.id,
текст: «Поло !!»,
}
)
. then ((ответ) => {
console.log ("Сообщение отправлено")
res.end ("хорошо")
})
.catch ((err) => {
console.log ("Ошибка:", ошибка)
res.end ("Ошибка:" + err)
})
})
app.listen (3000, function () {
console.log ("Приложение Telegram прослушивает порт 3000!")
})
Вы можете запустить этот сервер на своем локальном компьютере, запустив узел index.js
Если все пойдет хорошо, вы должны увидеть сообщение «Приложение Telegram прослушивает порт 3000!» напечатано на вашей консоли.
Но этого недостаточно. Бот не может вызывать API, если он работает на вашем локальном компьютере. Ему нужно публичное доменное имя. Это означает, что мы должны развернуть наше приложение.
Разверните свой сервис
Вы можете развернуть свой сервер любым удобным для вас способом, но я нахожу его очень быстрым и простым в использовании службы, которая называется сейчас.
Установите сейчас в вашей системе:
Добавьте сценарий запуска в файл package. json
.
Моя оригинальная упаковка .json
файл выглядит так:
{
"name": "телеграм-бот",
"версия": "1.0.0",
"описание": "",
"main": "index.js",
"scripts": {
"test": "echo \" Ошибка: тест не указан \ "&& exit 1"
},
"author": "Сохам Камани (http://sohamkamani.com)",
"лицензия": "ISC"
}
Добавьте стартовый скрипт, чтобы получить:
{
"name": "телеграм-бот",
"версия": "1.0.0",
"описание": "",
"main": "index.js",
"scripts": {
"test": "echo \" Ошибка: тест не указан \ "&& exit 1",
"start": "индекс узла.js "
},
"author": "Сохам Камани (http://sohamkamani.com)",
"лицензия": "ISC"
}
После добавления сценария выполните команду:
(не забудьте запустить его в корне папки проекта, где бы ни находился файл package.json
)
Если вы впервые используете «сейчас», вы увидите инструкции по входу, но после этого вы должны увидеть что-то вроде этого:
Отлично! Это означает, что ваш сервер развернут на https: // my-telegram-bot-tanvxponxj. now.sh
(или любая другая ссылка, которую вы видите вместо этого), и ваш API будет присутствовать на https://my-telegram-bot-tanvxponxj.now.sh/new-message
(как определено в index.js
)
Теперь все, что нам нужно сделать, это сообщить Telegram, что наш бот должен разговаривать с этим URL-адресом всякий раз, когда он получает какое-либо сообщение. Делаем это через API Telegram. Введите это в свой терминал:
curl -F "url = https: //my-telegram-bot-tanvxponxj.now.sh/new-message" https://api.telegram.org/bot/setWebhook
… и готово! Попробуйте пообщаться со своим новым ботом и посмотрите, что произойдет!
Часть 1: Как создать Telegram Bot на Python менее чем за 10 минут
В этом коротком руководстве я расскажу вам, как создать собственного бота Telegram на Python с нуля.
Давайте создадим Telegram Bot, который повторяет сообщения, которые мы ему отправляем. В следующей части мы узнаем, как развернуть бота на таких сайтах, как Heroku.
Шаг 1. Настройте профиль вашего бота
Чтобы настроить нового бота, начните разговор с BotFather (@BotFather).
BotFather поможет нам в создании нового бота.
- Ищите @botfather в Telegram.
Начните разговор, нажав кнопку «Пуск».
Создайте бота, выполнив команду / newbot
Введите отображаемое имя и имя пользователя для бота.
BotFather отправит вам сообщение с токеном
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ — Надежно храните токен доступа бота. Любой, у кого есть ваш токен, может управлять этим ботом.
Шаг 2. Кодирование бота
Откройте терминал и начните с создания нового каталога.
mkdir эхо-бот /
cd echo-bot /
Мы будем использовать виртуальную среду pipenv. Убедитесь, что в вашей системе установлен pipenv.
Pipenv — менеджер зависимостей для проектов Python.
Мы будем использовать пакет python-telegram-bot для взаимодействия с Telegram API. Установите пакет с помощью следующей команды.
pipenv установить python-telegram-bot
Создайте новый файл bot.py и вставьте в него следующий код.
#! / Usr / bin / env питон
# - * - кодировка: utf-8 - * -
# Эта программа предназначена для общественного достояния под лицензией CC0.
"" "
Простой бот для ответа на сообщения Telegram.
Сначала определяется несколько функций-обработчиков. Затем эти функции передаются в
Диспетчер и зарегистрированы по месту.
Затем бот запускается и работает, пока мы не нажмем Ctrl-C в командной строке.
Применение:
Базовый пример Echobot, повторяет сообщения.
Нажмите Ctrl-C в командной строке или отправьте сигнал процессу, чтобы остановить
бот."" "
импорт журнала
из telegram.ext import Updater, CommandHandler, MessageHandler, Filters
# Включить ведение журнала
logging. basicConfig (format = '% (asctime) s -% (name) s -% (levelname) s -% (message) s',
level = logging.INFO)
logger = logging.getLogger (__ имя__)
# Определите несколько обработчиков команд. Обычно они требуют обновления двух аргументов и
# context. Обработчики ошибок также получают поднятый объект TelegramError по ошибке.
def start (обновление, контекст):
"" "Отправить сообщение, когда выдается команда / start."" "
update.message.reply_text ('Привет!')
def help (обновление, контекст):
"" "Отправить сообщение при выдаче команды / справки." ""
update.message.reply_text ('Помогите!')
def echo (обновление, контекст):
"" "Вызвать сообщение пользователя." ""
update.message.reply_text (update.message.text)
def ошибка (обновление, контекст):
"" "Ошибки журнала, вызванные обновлениями." ""
logger.warning ('Обновление «% s» вызвало ошибку «% s» », обновление, context.error)
def main ():
"" "Запустите бота." ""
# Создайте Updater и передайте ему токен вашего бота. # Обязательно установите use_context = True, чтобы использовать новые обратные вызовы на основе контекста
# После версии 12 в этом больше не будет необходимости
updater = Updater ("ТОКЕН", use_context = True)
# Заставляем диспетчер регистрировать обработчики
dp = updater.dispatcher
# по разным командам - ответ в Telegram
dp.add_handler (CommandHandler ("начало", начало))
dp.add_handler (CommandHandler ("справка", справка))
# по некоманде, например, сообщение - повторить сообщение в Telegram
dp.add_handler (MessageHandler (Filters.текст, эхо))
# записывать все ошибки
dp.add_error_handler (ошибка)
# Запускаем бота
updater.start_polling ()
# Запускать бота, пока вы не нажмете Ctrl-C или процесс не получит SIGINT,
# SIGTERM или SIGABRT. Это следует использовать в большинстве случаев, поскольку
# start_polling () не блокирует и корректно останавливает бота.
updater.idle ()
если __name__ == '__main__':
основной()
Замените «TOKEN» в строке 56 на токен, который вы получили ранее от BotFather.
Этот код использует метод опроса для проверки сообщений и будет отвечать на каждое полученное сообщение одним и тем же сообщением.Вы можете узнать больше о том, как работает python-telegram-bot, здесь — Кодирование вашего первого бота
Запускаем бота с помощью
pipenv запустить python bot.py
Вуаля! Готово
Бьюсь об заклад, вам потребовалось бы меньше 10 минут, чтобы начать работу с вашим первым ботом.
Посмотрите 🤖 в действии
Играйте с ботом здесь — EchoBot
Надеюсь, вам понравилась статья. Есть какие-нибудь идеи для ботов? Комментарий ниже!
Проверить мои другие боты в действии:
- BookQuoteBot 📚: Читайте лучшие цитаты из известных книг.
- SplitwizeBot: использует Splitwise API для составления списка, создания и урегулирования расходов в Telegram.
Часть 2 — БЕСПЛАТНОЕ развертывание бота Telegram на Heroku
Как создать бота Telegram
Чат-ботов часто рекламируют как революцию в способах взаимодействия пользователей с технологиями и бизнесом. У них довольно простой интерфейс по сравнению с традиционными приложениями, поскольку они требуют от пользователей только общения в чате, а чат-боты должны понимать и делать все, что от них требует пользователь, по крайней мере теоретически.
Многие отрасли переводят обслуживание клиентов на системы чат-ботов. Это связано с огромным падением стоимости по сравнению с обычными людьми, а также из-за надежности и постоянной доступности. Чат-боты обеспечивают определенную поддержку пользователей без существенных дополнительных затрат.
Сегодня чат-боты используются во многих сценариях, начиная от простых задач, таких как отображение времени и данных о погоде, до более сложных операций, таких как элементарная медицинская диагностика и общение с клиентами / поддержка.Вы можете разработать чат-бота, который поможет вашим клиентам, когда они задают определенные вопросы о вашем продукте, или вы можете создать чат-бота личного помощника, который сможет выполнять базовые задачи и напоминать вам, когда пора идти на встречу или в спортзал.
Есть много вариантов, где вы можете развернуть своего чат-бота, и одним из наиболее распространенных вариантов использования являются платформы социальных сетей, поскольку большинство людей используют их на регулярной основе. То же самое можно сказать и о приложениях для обмена мгновенными сообщениями, хотя и с некоторыми оговорками.
Telegram — одна из самых популярных сегодня платформ обмена мгновенными сообщениями, поскольку она позволяет хранить сообщения в облаке, а не только на вашем устройстве, и может похвастаться хорошей многоплатформенной поддержкой, так как Telegram можно использовать на Android, iOS, Windows и просто о любой другой платформе, которая может поддерживать веб-версию. Создание чат-бота в Telegram довольно просто и требует нескольких шагов, которые займут очень мало времени. Чат-бот может быть интегрирован в группы и каналы Telegram, а также работает сам по себе.
В этом уроке мы создадим бота 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
, используя следующую команду:
$ источник botenv / bin / activate
Библиотеки, необходимые для нашего бота:
Вы можете установить их в виртуальной среде с помощью следующей команды pip:
(телебот) $ pip install flask
(Telebot) $ pip установить python-telegram-bot
(Telebot) запросы на установку $ pip
Теперь давайте просмотрим каталог нашего проекта.
.
├── app.py
├── телебот
│ ├── credentials.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
В файле credentials.py
нам понадобятся три переменные:
bot_token = "Вот ваш токен доступа от BotFather"
bot_user_name = "введенное вами имя пользователя"
URL = "ссылка на приложение heroku, которую мы создадим позже"
Теперь вернемся к нашему app.py и пройдемся по коду шаг за шагом:
# импортировать все
из фляги импорт фляги, запрос
телеграмма импорта
от телебота. импорт учетных данных bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
Теперь у нас есть объект бота, который будет использоваться для любого действия, которое мы требуем от бота.
# запустить приложение flask
app = Flask (__ имя__)
Нам также нужно привязать функции к определенным маршрутам. Другими словами, нам нужно указать Flask, что делать при вызове определенного адреса. Более подробную информацию о Flask и маршрутах можно найти здесь.
В нашем примере функция маршрута отвечает на URL-адрес, который в основном равен / {token}
, и это URL-адрес, который Telegram будет вызывать для получения ответов на сообщения, отправленные боту.
@ app.route ('/ {}'. Формат (ТОКЕН), методы = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram. Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
"" "
# отправить приветственное сообщение
бот.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars. adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
вернуть "ок"
Интуитивно понятный способ заставить эту функцию работать — это то, что мы будем вызывать ее каждую секунду, чтобы она проверяла, пришло ли новое сообщение, но мы этого делать не будем. Вместо этого мы будем использовать Webhook, который позволяет боту вызывать наш сервер всякий раз, когда вызывается сообщение, так что нам не нужно заставлять наш сервер страдать во время цикла ожидания сообщения.
Итак, мы создадим функцию, которую нам самим нужно будет вызвать для активации Webhook Telegram, по сути говоря, что Telegram должен вызывать определенную ссылку, когда приходит новое сообщение. Мы вызовем эту функцию только один раз при первом создании бота. Если вы измените ссылку на приложение, вам нужно будет снова запустить эту функцию с новой ссылкой, которая у вас есть.
Маршрут здесь может быть любым; вы тот, кто назовет его:
@ app.route ('/ setwebhook', methods = ['GET', 'POST'])
def set_webhook ():
# мы используем объект бота, чтобы связать бота с нашим приложением, которое
# в ссылке, предоставленной URL
s = бот.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
# кое-что, чтобы сообщить нам, что все работает
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
Теперь, когда все настроено, давайте просто создадим красивую домашнюю страницу, чтобы мы знали, что двигатель работает.
@ app.route ('/')
def index ():
вернуть '.'
если __name__ == '__main__':
# обратите внимание на резьбовой аргумент, который позволяет
# ваше приложение должно иметь более одного потока
app.run (thread = True)
Давайте посмотрим на полную версию приложения.py:
импорт ре
из фляги импорт фляги, запрос
телеграмма импорта
из telebot.credentials import bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
app = Flask (__ имя__)
@ app.route ('/ {}'. format (TOKEN), methods = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = обновить.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = update.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени."" "
# отправить приветственное сообщение
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот. sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
вернуть "ок"
@ app.route ('/ set_webhook', methods = ['GET', 'POST'])
def set_webhook ():
s = bot.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
@приложение.маршрут ('/')
def index ():
вернуть '.'
если __name__ == '__main__':
app.run (thread = True)
Это последний фрагмент кода, который вы напишете в нашем руководстве. Теперь мы можем перейти к последнему шагу, запустив наше приложение на Heroku.
Запустите наше приложение на Heroku
Нам нужно кое-что, прежде чем мы создадим наше приложение.
Heroku не может знать, какие библиотеки использует ваш проект, поэтому мы должны сообщить ему об этом с помощью файла requirements. txt
— распространенная проблема заключается в том, что вы неправильно написали требования, поэтому будьте осторожны — чтобы сгенерировать файл требований с помощью pip:
pip freeze> требования.текст
Теперь у вас есть готовый файл требований.
Теперь вам нужен Procfile
, который сообщает Heroku, где запускается наше приложение, поэтому создайте файл Procfile
и добавьте следующее:
Интернет: Gunicorn app: app
Шаг возврата: вы можете добавить файл .gitignore
в свой проект, чтобы неиспользуемые файлы не загружались в репозиторий.
Создайте новое приложение на панели управления Heroku. Как только вы это сделаете, он направит вас на страницу Deploy .Затем откройте вкладку Settings в новом окне и скопируйте домен приложения, который будет примерно https://appname.herokuapp.com/
, и вставьте его в переменную URL внутри credentials. py
.
Теперь вернитесь на вкладку Deploy и выполните шаги:
Примечание. Пользователи Windows и macOS могут выполнить действия, описанные здесь.
Войдите в Heroku:
$ heroku логин
Обратите внимание, что этот метод иногда застревает в в ожидании входа в систему
, если это произойдет с вами, попробуйте войти, используя:
$ heroku логин -i
Инициализируем репозиторий Git в нашем каталоге:
$ git init
$ heroku git: remote -a {имя-проекта-героя}
Развернуть приложение:
$ git add.$ git commit -m "первая фиксация"
$ git push герой мастер
На этом этапе вы увидите прогресс строительства в вашем терминале. Если все прошло нормально, вы увидите что-то вроде этого:
пульт: -----> Запуск ...
удаленный: выпущена v6
удаленный: https://project-name. herokuapp.com/ развернут на Heroku
удаленный:
удаленный: проверка развертывания ... выполнено.
Теперь перейдите на страницу приложения (ссылка на домен, который вы скопировали ранее) и добавьте в конец ссылки / setwebhook
, чтобы адрес был примерно таким: https: // имя приложения.herokuapp.com/setwebhook
. Если вы видите webhook setup ok
, это значит, что вы готовы к работе!
Теперь поговорите со своим ботом
Живая версия бота
Последние штрихи, советы и уловки
Теперь у вас есть бот Telegram, работающий круглосуточно и без выходных. Вы можете добавить к боту любую логику, которую хотите, так, например, вы можете сделать своего бота более реалистичным, добавив статус «печатает» и отправив статус фотографии следующим образом:
Следующий фрагмент кода из функции response ()
:
, если текст == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует сервис из http: // avatars. adorable.io/ для создания крутых аватаров на основе введенного имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
"" "
# отправить приветственное сообщение
bot.sendChatAction (chat_id = chat_id, action = "typing")
сон (1.5)
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = 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, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot. sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
Как вы можете видеть во фрагменте, мы добавили действие ввода, когда мы собираемся отправить информацию о боте в текстовом формате, и добавили действие загрузки фотографии, когда мы собираемся отправить фотографию, чтобы сделать бота больше реалистично.Больше действий можно найти здесь.
Вы также можете изменить изображение и описание бота из канала BotFather, чтобы сделать его более удобным.
Еще много простых примеров телеграмм-ботов можно найти на странице python-telegram-bot на GitHub.
Вы можете развить нашего бота и сделать его следующим супер-AI-ботом — все, что вам нужно сделать, это интегрировать свою логику в функцию response ()
. Например, ваша логика может находиться в отдельном модуле и может вызываться внутри функции response ()
следующим образом:
. ├── app.py
├── телебот
│ ├── credentials.py
│ ├──ai.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
А внутри ai .py:
def generate_smart_reply (текст):
# здесь мы можем делать всю нашу работу
верните "это умный ответ от ai!"
Импортируйте его сейчас в приложение .py:
импорт ре
от времени импортный сон
из фляги импорт фляги, запрос
телеграмма импорта
С телебота.AI импорт generate_smart_reply
из telebot.credentials import bot_token, bot_user_name, URL
Затем просто вызовите его внутри кода ответа ()
.
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление. message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# здесь позвоните своему умному ответному сообщению
reply = generate_smart_reply (текст)
bot.sendMessage (chat_id = chat_id, text = reply, reply_to_message_id = msg_id)
Теперь ваш бот может работать так, как вы хотите — вперед и создайте следующую большую вещь!
Надеюсь, вам понравилось создавать своего первого бота для Telegram.
Дополнительные ресурсы
Создание приватного чат-бота Telegram
В этом посте я хочу объяснить, как создать приватного бота в Telegram.Под private я имею в виду ботов, которые не могут быть обнаружены другими или не взаимодействуют с другими. Такие боты обычно предназначены для некоторой личной автоматизации, когда бот действует как объект доставки для вас или вашей семьи.
Не совсем приватный бот
В Telegram боты не приватные. Их может найти каждый. Разница в том, что определенный канал связи с ботом можно сделать приватным. Это группа с ботом, членами которой являетесь вы и бот.Такие частные каналы обычно полезны для домашней автоматизации, когда бот должен разговаривать только с одним человеком.
Создание бота
Создать бота, как правило, легко, следуя инструкциям по ботам: Введение для разработчиков, использующих BotFather.
- Откройте сеанс с BotFather.
- Введите
/ newbot
. - Введите имя бота.
Пример бота для блога
- Введите имя пользователя для бота. он должен заканчиваться ботом
example_blog_bot
Я, [25.03.20 16:02] / newbot
BotFather, [25.03.20 16:02] Хорошо, новый бот. Как мы это назовем? Выберите имя для> вашего бота.
Я, [25.03.20 16:03] Пример бота для блога
BotFather, [25.03.20 16:03] Хорошо. Теперь давайте выберем имя пользователя для вашего бота. Он должен заканчиваться
ботом
. Как> это, например: TetrisBot или tetris_bot.Я, [25.03.20 16:03] example_blog_bot
BotFather, [25.03.20 16:03] Выполнено! Поздравляю с приобретением нового бота. Вы найдете его на t.me/> example_blog_bot. Теперь вы можете добавить описание, раздел и профиль> изображение для вашего бота, см. / Help для получения списка команд. Между прочим, когда> вы закончите создавать своего крутого бота, свяжитесь с нашей службой поддержки ботов, если вам нужно> лучшее имя пользователя для него. Просто убедитесь, что бот полностью работает, прежде чем> вы это сделаете.
Используйте этот токен для доступа к HTTP API: 1101361374: AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA Держите свой токен в безопасности и храните его в безопасности, он может быть использован кем угодно для> управления вашим ботом.
Описание Bot API см. На этой странице: https://core.telegram.org/> bots / api
Вот и все. Новый бот доступен, и любой может найти его в качестве примера бота для блога.
Бот был удален, поэтому вся конфиденциальная информация не имеет значения.
Создайте группу со своим ботом
Это простой шаг. Нам нужно сделать это сейчас, потому что позже мы отключим возможность добавления бота в разговоры.
Эта группа, которую мы создали, также будет нашим приватным чатом с ботом.
Отключить присоединение к группам
По умолчанию бот может быть добавлен в групповой чат всем, кто может его найти. Чтобы этого не произошло, нам нужно отключить это.
- Откройте сеанс с BotFather.
- Введите
/ setjoingroups
. - Введите имя бота.
@example_blog_bot
. - Введите
Отключите
Я, [25.03.20 16:13] / setjoingroups
BotFather, [25.03.20 16:13] Выберите бота, чтобы изменить настройки членства в группе.
Я, [25.03.20 16:13] @example_blog_bot
BotFather, [25.03.20 16:13] «Включить» — бота можно добавлять в группы. «Отключить» — заблокировать приглашения в группы, бота нельзя добавить в группы. Текущий статус: ВКЛЮЧЕНО
Я, [25.03.20 16:13] Отключить
BotFather, [25.03.20 16:13] Успех! Новый статус: ОТКЛЮЧЕН. / help
Если вы попытаетесь добавить своего бота в группу, у вас ничего не получится.Поэтому лучше всего, чтобы вы уже создали группу, прежде чем делать этот шаг. Вы всегда можете включить функцию присоединения к группе, создать группу с ней и собой, а затем снова отключить ее.
Взаимодействие с ботом
В Telegram Bot API описывается API Telegram. Для взаимодействия с этим ботом нам понадобится API-токен 1101361374: AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA
, который нам предоставил BotFather. Общий шаблон uri — https: //api.telegram.org / bot <токен> / METHOD_NAME
. Обратите внимание на , что токен следует за словом bot
в URL-адресе.
Например, метод getMe
предоставит информацию о боте. Просто выполните GET
с этим URL-адресом https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/getMe
.
{
"ок": правда,
"результат": {
"id": 1101361374,
"is_bot": правда,
"first_name": "Пример бота для блога",
"username": "example_blog_bot",
"can_join_groups": ложь,
"can_read_all_group_messages": ложь,
"supports_inline_queries": false
}
}
Чтобы отправлять сообщения в эту частную группу , которую мы создали с помощью бота, нам нужно настроить таргетинг на нее, указав параметр chat_id
, который представляет эту группу. chat_id
также необходим для любой интеграции с другими инструментами, такими как Zapier или Integromat, и вот почему это важно.
Для его извлечения используйте метод getUpdates
. Выполните GET
с этим URL https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/getUpdates
. Если результат пуст, просто введите что-нибудь боту в этой группе.
Обратите внимание, что этот метод возвращает результаты только в том случае, если бот не поддерживает конфиденциальность .Если вы хотите включить конфиденциальность, убедитесь, что вы сделали это после извлечения chat_id
, как описано ниже.
{
"ок": правда,
"результат": [
{
update_id: 726362299,
"сообщение":{
"message_id": 3,
"от":{
"id": 877419474,
"is_bot": ложь,
"first_name": "Алекс",
"last_name": "Сарафский"
},
"chat": {
"id": - 475387861,
"title": "Пример блога-бота",
"тип": "группа",
"all_members_are_administrators": истина
},
«дата»: 1585150611,
"текст": "Привет"
}
}
]
}
Hello
— это сообщение, которое я отправил боту, чтобы убедиться, что я могу получить результаты с помощью getUpdates
.
Из JSON chat_id
: -475387861
. Мы можем использовать это для отправки сообщения с помощью метода sendMessage
.
sendMethod
намного сложнее, но для целей этой демонстрации достаточно простого GET
с простым сообщением, например, этого URL https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/ sendMessage? chat_id = -475387861 & text = Привет,
.
{
"ок": правда,
"результат": {
"message_id": 4,
"от":{
"id": 1101361374,
"is_bot": правда,
"first_name": "Пример бота для блога",
"имя пользователя": "example_blog_bot"
},
"chat": {
"id": - 475387861,
"title": "Пример блога-бота",
"тип": "группа",
"all_members_are_administrators": истина
},
«дата»: 1585151160,
"текст": "Привет"
}
}
А это произошло в группе с ботом
Я, [25. 03.20 16:36] Привет
Пример бота для блога, [25.03.20 16:46] Привет
Настройка конфиденциальности
Чтобы включить шифрование связи с ботом, необходимо включить функцию конфиденциальности.
- Откройте сеанс с BotFather.
- Введите
/ setprivacy
. - Введите имя бота.
@example_blog_bot
. Обратите внимание на , что требуется@
. - Введите
Включить
Я, [25.03.20 16:09] / setprivacy
BotFather, [25.03.20 16:09] Выберите бота, чтобы изменить настройки групповых сообщений.
Я, [25.03.20 16:09] @example_blog_bot
BotFather, [25.03.20 16:09] «Включить» — ваш бот будет получать только сообщения, которые начинаются с символа «/»> или упоминают бота по имени пользователя. «Отключить» — ваш бот будет получать все сообщения, которые люди отправляют группам. Текущий статус: ВКЛЮЧЕНО
Я, [25. 03.20 16:09] Включить
BotFather, [25.03.20 16:09] Успех! Новый статус: ВКЛЮЧЕН. / help
Помните , что после этого метод getUpdates
из API вернет пустые результаты или последнее зашифрованное сообщение.
Создание ботов Telegram с n8n, платформа без кода
Я большой поклонник Telegram из-за его великолепной бот-экосистемы. Я планировал создать бота некоторое время и искал несколько хороших инструментов рабочего процесса, которые могут помочь мне визуально управлять внутренним рабочим процессом ботов.Недавно я начал работать с n8n, лицензированным инструментом с честным кодом, который помогает автоматизировать задачи, синхронизировать данные между различными источниками и реагировать на события с помощью визуального редактора рабочего процесса.
В Берлине весна, и погода непредсказуема. Сегодня будет 6 ° C, а на следующий день 21 ° C 🤯 Хорошим первым вариантом использования для меня было бы создание бота, который мог бы присылать мне информацию о погоде, когда я об этом спрашиваю. В этом уроке я научу вас, как создать своего собственного погодного бота в Telegram с помощью n8n.
Для этого мы выполним пять шагов:
- Создание бота Telegram
- Добавление команд боту
- Создание узла триггера Telegram на n8n
- Создание узла погоды на n8n
- Создание Telegram node на n8n
Создание бота Telegram
Чтобы создать бота Telegram, я скачал приложение Telegram для macOS. Однако вы также можете использовать для этого веб-клиент или мобильное приложение. Мы должны использовать мастера всех ботов, созданных командой Telegram, метко названный BotFather.Вы можете открыть чат с BotFather, нажав здесь. Вы можете получить список всех команд, которые вы можете выполнить, с помощью
/ help
.Прежде всего, введите команду
/ newbot
. Он попросит вас назвать своего бота. Я назвал его «бот n8n», почему бы и нет? Затем вам будет предложено выбрать имя пользователя для бота. Это должно быть уникальное имя пользователя, которое должно заканчиваться на «бот». Я пошел с n8n_weather_bot
.Это создал моего бота, дал мне ссылку для доступа к нему (вы также можете искать своего бота по имени пользователя, которое вы ему указали) и ключ API, который нам понадобится позже.Просто нажмите на ключ API, чтобы скопировать его в буфер обмена. Вот гифка, на которой я выполняю описанные выше действия.
Добавление команд боту
Давайте создадим команду для нашего бота, прежде чем добавлять в него некоторые функции. Вы можете пропустить этот раздел для руководства, если хотите. Однако, если вы планируете создать больше команд для бота, возможно, имеет смысл примерить это для увеличения размера.
Чтобы установить новую команду для нашего бота, снова зайдите в окно чата BotFather. Введите команду
/ setcommands
, и вам будет предложено выбрать бота, для которого вы хотите установить команду. Выберите только что созданного бота и введите команду в предложенном формате. Я пошел дальше и ввел следующее: погода - Рассказывает о погоде
Вот гифка, на которой я устанавливаю команду для своего бота.
Теперь, если вы вернетесь к созданному вами боту и начнете набирать «/», он покажет вам список команд, которые вы подготовили для бота. Хорошо, теперь у нас есть бот и команда. Пришло время добавить к боту некоторые функции.
Создание триггерного узла Telegram на n8n
Чтобы начать создание серверной части бота, сначала необходимо установить n8n с помощью npm с помощью следующей команды:
npm install n8n -g
Вы также можете запустить n8n с помощью Docker.После того, как вы установили n8n, вы можете запустить его с помощью следующей команды:
n8n start --tunnel
Мы запустили n8n, используя параметр
--tunnel
, чтобы иметь возможность использовать триггер веб-хуков из Telegram как он должен быть доступен из Интернета. Чтобы узнать больше об этом, ознакомьтесь с документацией.Ввод «o» в терминале откроет нам интерфейс редактора.
Давайте теперь создадим узел Trigger, который запускает рабочий процесс, когда веб-перехватчик получает некоторые данные.В нашем случае это будет Telegram Trigger, получающий данные вебхука через бота.
Создайте узел «Триггер», нажав кнопку «+» в правом верхнем углу экрана. Выберите узел Telegram Trigger в меню узлов Trigger, чтобы создать узел.
Теперь вам нужно настроить этот узел. Прежде всего, мы должны добавить учетные данные для API Telegram и предоставить доступ к этому узлу Telegram Trigger. Если вы забыли скопировать Telegram API, перейдите в окно чата BotFather и получите его оттуда.Добавьте новые учетные данные, нажав «Создать» в разделе «Учетные данные» узла.
После этого вам необходимо настроить, чтобы узел запускался каждый раз, когда сообщение отправляется боту. Для этого выберите опцию «сообщение» в поле «Обновления». Наконец, нажмите «Выполнить узел» в правом верхнем углу диалогового окна. И вуаля, наш узел Telegram Trigger готов.
Вот гифка, на которой я выполняю описанные выше действия.
Создание узла погоды на n8n
Теперь пришло время добавить узел OpenWeatherMap.Этот узел будет получать информацию о погоде для нашего бота.
Для этого нажмите кнопку «+» в правом верхнем углу экрана и выберите узел OpenWeatherMap. Нам снова нужно добавить учетные данные для API. Чтобы получить ключ API для OpenWeatherMap, вам необходимо зарегистрировать бесплатную учетную запись, и здесь вы найдете свои ключи API. Получив ключ, создайте новые учетные данные, как вы это делали для узла Telegram Trigger.
Для меня настройки узла по умолчанию были идеальными. Я только что добавил
berlin, de
как город.Вы можете проверить код своего города здесь. Наконец, нажмите на «Execute Node», и мы готовы!Вот гифка, на которой я выполняю описанные выше действия.
Создание узла Telegram на n8n
Теперь вы должны сохранить рабочий процесс, нажав «Сохранить как» в меню «Рабочий процесс» в левом верхнем углу.
Теперь отправьте сообщение боту, и вы увидите, что оно будет получено триггером.
Наш последний компонент — это добавление узла Telegram, который будет отправлять сообщение с данными о погоде обратно человеку, который его запросил.
Добавьте узел Telegram, как вы добавляли узлы раньше. Перед тем как перейти к настройке узла, убедитесь, что вы подключили его к узлу OpenWeatherMap, прежде чем продолжить. Это гарантирует, что узел получит данные от узла Telegram Trigger и OpenWeatherMap для настройки конфигурации.
Теперь пора настроить узел. У нас уже есть учетные данные Telegram, которые мы ввели на раннем этапе, и их можно использовать повторно. После выбора учетных данных щелкните значок карандаша рядом с учетными данными и убедитесь, что вы переместили узел «Telegram» из столбца «Нет доступа» слева в столбец «Доступ» справа.Как только вы закончите с этим, это должно выглядеть так.
У вас осталось настроить два поля: идентификатор чата и текст. Поскольку нам нужно отправить сообщение человеку, который запросил бота, мы можем получить его идентификатор чата из узла Telegram Trigger. Поскольку это динамический фрагмент информации, мы нажимаем на значок шестеренки рядом с полем «Идентификатор чата», чтобы добавить выражения. Здесь вы можете выбрать:
Узлы> Триггер Telegram> Выходные данные> JSON> сообщение> чат> id
Для поля «Текст», поскольку нам снова нужно добавить дополнительную динамическую информацию, мы выберем вывод из OpenWeatherMap аналогичным образом:
Node> OpenWeatherMap> Output Data> JSON> main> temp
Это даст нам текущее значение температуры.Наконец, нажмите на «Execute Node», и вы увидите, что это заставит бот отправить вам сообщение в Telegram.
Вот гифка, на которой я выполняю описанные выше действия.
Я бы порекомендовал вам поиграть с различными выходными значениями узла, чтобы создать собственное сообщение. В итоге я добавил следующее выражение для поля «Текст»:
Прямо сейчас у нас есть {{$ node ["OpenWeatherMap"]. Json ["weather"] [0] ["description"]}}. Температура {{$ node ["OpenWeatherMap"].json ["main"] ["temp"]}} ° C, но это действительно похоже на {{$ node ["OpenWeatherMap"]. json ["main"] ["feel_like"]}} ° C 🙂
Сейчас , когда я возвращаюсь в свое приложение Telegram, оно работает следующим образом.
После сохранения рабочего процесса вы можете активировать его, нажав кнопку с пометкой «Активный» в правом верхнем углу. Бот будет продолжать работать, пока на вашем компьютере активен рабочий процесс.
Чтобы он работал, его нужно где-то разместить. Дополнительную информацию о настройке сервера можно найти здесь.n8n также работает над собственной размещенной версией. Если вам интересно узнать об этом больше, вы можете написать нам об этом здесь.
Следующие шаги
Это руководство содержало бота Telegram с базовым рабочим процессом n8n. n8n имеет множество интеграций, которые могут просто обеспечить очень сложные рабочие процессы. В качестве следующего упражнения вы также можете изучить получение ежедневных данных панели управления, возможно, из Google Sheets или Airtable. Вы можете создать другую команду и добавить узел IF или Switch перед узлом Telegram Trigger для обработки различных команд.Вы также можете узнать, как создавать свои собственные узлы здесь.
Вы решили создать другого бота и использовали другие узлы? Не забудьте отправить сюда свой рабочий процесс. Вы можете найти рабочий процесс, который я создал для этого урока, здесь.
Заключение
Телеграмм-ботов интересно создавать и они могут открывать шлюз для быстрого получения любой информации. Создание серверной части таких ботов требует знания работы с API и может оказаться сложной задачей, если вы только что вошли в мир программирования или у вас нет времени.Использование решений без кода, таких как n8n, позволяет эффективно создавать внутренний рабочий процесс таких систем без необходимости углубляться в механику.
Я был бы очень рад узнать, что вы создали с помощью n8n! В случае, если вы столкнулись с проблемой, следуя руководству, не стесняйтесь обращаться ко мне в Twitter или попросить помощи на нашем форуме 💙
Связанные
Теги
Присоединяйтесь к хакеру ПолденьСоздайте бесплатную учетную запись, чтобы разблокировать свой индивидуальный опыт чтения.
Telegram Bot — поддержка Integromat
Начало работы с Telegram Bot
Предварительные требования
- Настроенный бот через приложение Telegram. Вы можете скачать приложение Telegram Desktop на desktop.telegram.org.
- Чтобы использовать приложение Telegram, необходимо указать номер вашего мобильного телефона.
Настройка бота Telegram
1. Перейдите на https://telegram.me/BotFather.
2. Чтобы создать нового бота, введите / newbot
в окно сообщения и нажмите Enter.
3. Введите имя пользователя, имя вашего нового бота.
Вы получили сообщение от BotFather, содержащее токен , который вы можете использовать для подключения Telegram Bot к Integromat.
Чтобы добавить своего бота в приложение Telegram, щелкните ссылку в сообщении от BotFather или введите ее вручную в браузере. Ссылка тн. me / yourBotName
.
Добавление бота Telegram в сценарий
Выполните Шаг 1 в статье Создание сценария (выберите модуль Telegram Bot вместо модуля Twitter и Facebook).
После добавления модуля в сценарий вы можете увидеть редактор сценария .
Определите, какую функцию вам нужен ваш модуль. Здесь вы можете выбрать один из трех типов модулей — триггеров, , действий, и поиска.
Триггеры
Смотреть Обновления
Используйте этот триггер для отслеживания обновлений Telegram, таких как новое сообщение или новый файл.
Обновления часов Триггер нельзя комбинировать с модулями, получением обновлений или получением чатов.
Вебхук | Чтобы добавить веб-перехватчик, вам необходимо установить соединение с ботом Telegram. Используйте токен, предоставленный BotFather (см. Шаги выше, Настройка бота Telegram ). |
Соединение между Telegram Bot и Integromat установлено. Вы можете продолжить с другими действиями Telegram Bot .
Ограничить участие в чате
Эта функция позволяет вам установить права пользователя в супергруппе .
Бот должен быть установлен как admin соответствующей супергруппы.
Сделайте бота администратором с помощью параметра «Просмотр информации о группе»:
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Вы можете определить идентификатор чата с помощью Telegram Bot> Watch Updates trigger: 1. Поместите в сценарий модуль Watch Updates . 6. Найдите идентификатор в выходном пакете: 7. Используйте идентификатор в поле желаемого модуля (вы также можете использовать загруженный тег). |
Идентификатор пользователя | Введите ID пользователя, которого вы хотите ограничить. Получить идентификатор пользователя можно с помощью специального бота Telegram userinfobot. 1. Добавьте userinfobot в свое приложение Telegram. 2.Перейдите в чат с пользователем, у которого вы хотите получить идентификатор. 3. Переслать его сообщение userinfobot.
4. Скопируйте идентификатор пользователя и вставьте его в нужный модуль Integromat. |
До даты | Установите дату, когда будут применяться ограничения до. Допустимые форматы даты можно найти здесь. (Например, 20.06.2016 ) |
Установить, может ли пользователь отправлять сообщения | Установить Да , если пользователю разрешено отправлять сообщения.Установите № , чтобы запретить пользователю отправлять сообщения в супергруппе. Сообщение может быть текстовым сообщением, контактом, местоположением и местом проведения. |
Установить, может ли пользователь отправлять мультимедийные сообщения | Установить Да , если пользователю разрешено отправлять мультимедийные сообщения. Установите № , чтобы запретить пользователю отправлять аудиофайлы, документы, фотографии, видео, видеозаметки и голосовые заметки в супергруппе. |
Установить, может ли пользователь отправлять другие сообщения | Установить Да , если пользователю разрешено отправлять другие сообщения. Установите № , чтобы запретить пользователю отправлять анимацию, игры, стикеры и использовать встроенных ботов. |
Установите, может ли пользователь добавлять превью веб-страниц | Установите Да , если пользователь может добавлять превью веб-страниц в свои сообщения. |
Продвижение участника чата
Используйте это действие, чтобы повысить или понизить в должности члена супергруппы или канала.
Бот должен быть администратором соответствующего чата с соответствующими правами администратора.
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Идентификатор пользователя | Чтобы установить идентификатор пользователя, следуйте этим инструкциям. |
Установить, может ли администратор изменять информацию | Выберите Да , если администратор может изменить название чата, фото и другие настройки. |
Установите, может ли администратор создавать сообщения канала | Выберите Да , если администратор может создавать сообщения канала [только каналы]. |
Установить, может ли администратор редактировать сообщения | Выберите Да , если администратор может редактировать сообщения других пользователей и закреплять сообщения [только каналы]. |
Установить, может ли администратор удалять сообщения | Выберите Да , если администратор может удалять сообщения других пользователей [только каналы]. |
Укажите, может ли администратор приглашать пользователей | Выберите Да , если администратор может приглашать новых пользователей в чат. |
Установить, может ли администратор ограничивать участников | Выберите Да , если администратор может ограничивать, запрещать или разблокировать участников чата. |
Установить, может ли администратор закреплять сообщения | Выберите Да , если администратор может закреплять сообщения [только супергруппы]. |
Установить, может ли администратор повышать участников | Выберите Да , если администратор может добавлять новых администраторов с подмножеством своих собственных полномочий или понижать в должности администраторов, которых он повысил, прямо или косвенно (продвинутых администраторами, назначенными им). |
Отправить текстовое сообщение или ответить
Это действие отправляет сообщение или ответ вашему настольному приложению Telegram.
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Идентификатор пользователя | Чтобы установить идентификатор пользователя, следуйте этим инструкциям. |
Текст | Введите (или сопоставьте) текстовое содержание сообщения, которое вы хотите отправить. |
Режим анализа | Укажите, как вы хотите, чтобы ваш текст распознавался. HTML или Markdown. Синтаксис Markdown: Синтаксис HTML:
|
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений.Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Отключить предварительный просмотр ссылок | Выберите Да , чтобы отключить предварительный просмотр ссылок в этом сообщении. |
ID исходного сообщения | Идентификатор исходного сообщения, если сообщение является ответным. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e. г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Удалить участника чата
Используйте это действие, чтобы исключить пользователя из канала, группы или супергруппы.
Бот должен быть администратором соответствующего чата с соответствующими правами администратора.
Отправить аудиофайл
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Подпись | Введите заголовок аудио. |
Отправить по | Аудиофайл для отправки. Передайте file_id в виде строки для отправки аудиофайла, существующего на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки, чтобы Telegram получил аудиофайл из Интернета, или загрузите новый с помощью multipart / form-data .Более подробную информацию об отправке аудиофайлов можно найти на странице Telegram Bot API. Например, вы можете использовать Dropbox для обработки файла. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений. Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Продолжительность | Введите продолжительность отправляемого видео в секундах. |
Исполнитель | Введите исполнителя. |
Название | Введите название дорожки. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, например {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https: // botpress. org «}]]} или {» клавиатура «: [[» Да «,» Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Тип содержимого | Выберите или введите тип данных MIME. |
Отправить документ или изображение
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Подпись | Введите заголовок аудио. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Режим анализа | Укажите, как вы хотите, чтобы ваш текст распознавался.HTML или Markdown. Синтаксис Markdown: Синтаксис HTML:
|
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений. Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Тип содержимого | Выберите или введите тип данных MIME. |
Идентификатор исходного сообщения | Идентификатор исходного сообщения, если сообщение является ответным. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e.г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Отправить видео
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Подпись | Введите заголовок видео. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений.Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Тип содержимого | Выберите или введите тип данных MIME. |
Продолжительность | Введите продолжительность отправляемого видео в секундах. |
Ширина | Введите ширину видео. |
Высота | Введите высоту видео. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e.г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Отправить стикер
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений.Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Идентификатор исходного сообщения | Идентификатор исходного сообщения, если сообщение является ответным. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e. г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Отправить альбом
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
СМИ | Выберите элементы, которые хотите добавить в свой альбом. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений. Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e. г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Отправить видеозаметку
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений.Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Тип содержимого | Выберите или введите тип данных MIME. |
Длина | Ширина и высота видео, то есть диаметр видео сообщения. |
Продолжительность | Введите продолжительность отправляемого видео (в секундах). |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e.г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress. org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Идентификатор исходного сообщения | ID исходного сообщения, если сообщение является ответным. |
Отправить фото
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Подпись | Введите заголовок видео. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Режим анализа | Укажите, как вы хотите, чтобы ваш текст распознавался. HTML или Markdown. Синтаксис Markdown: Синтаксис HTML:
|
Идентификатор исходного сообщения | Идентификатор исходного сообщения, если сообщение является ответным. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e.г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемой клавиатуре можно найти на странице Telegram Bot API. |
Отправить голосовое сообщение
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Подпись | Введите заголовок голосового сообщения. |
Отправить по | Файл изображения для отправки. Передайте file_id в виде строки для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки для Telegram, чтобы получить файл из Интернета, или загрузите новый с помощью multipart / form-data. Более подробную информацию об отправке файлов можно найти на странице Telegram Bot API. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений.Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
Тип содержимого | Выберите или введите тип данных MIME. |
Продолжительность | Введите продолжительность отправляемого видео в секундах. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, e. г. {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Удалить сообщение
Удалить можно только сообщение, отправленное менее 48 часов назад.
Узнайте количество участников чата
Скачать файл
Скачивает файл с сервера Telegram.
Переслать сообщение
Редактировать медиа-сообщение
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Идентификатор сообщения | Введите идентификатор сообщения, которое вы хотите переслать. |
Тип носителя | Выберите, хотите ли вы редактировать фото или видео. |
Подпись | Введите подпись к фото / видео. |
Исходный файл | Определите исходный файл, который хотите отредактировать.Подробнее о работе с файлами. |
Режим анализа | Укажите, как вы хотите, чтобы ваш текст распознавался. HTML или Markdown. Синтаксис Markdown: Синтаксис HTML:
|
Редактировать текстовое сообщение
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Идентификатор сообщения | Введите идентификатор сообщения, которое вы хотите переслать. |
Текст | Введите (или сопоставьте) текстовое содержание сообщения, которое вы хотите отправить. |
Режим анализа | Укажите, как вы хотите, чтобы ваш текст распознавался. HTML или Markdown. Синтаксис Markdown: Синтаксис HTML:
|
Отключить предварительный просмотр ссылок | Выберите Да , чтобы отключить предварительный просмотр ссылок. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, например {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Отправить медиа по URL или ID
Соединение | Установите соединение с вашим Telegram Bot, используя предоставленный токен. |
ID чата | Чтобы установить идентификатор чата, следуйте этим инструкциям. |
Тип носителя | Выберите, хотите ли вы редактировать фото или видео. |
Подпись | Введите подпись к фото / видео. |
Отправить по | Выберите файл. Задайте file_id в качестве строки для отправки файла, который существует на серверах Telegram (рекомендуется), или выберите URL-адрес HTTP в качестве строки для Telegram, чтобы получить файл из Интернета. |
Отключить уведомление | Выберите Да , чтобы отправлять сообщения без вывода сообщений. Пользователи iOS не получат уведомления, пользователи Android получат уведомление без звука. |
ID исходного сообщения | Идентификатор исходного сообщения, если сообщение является ответным. |
Разметка ответа — дополнительные параметры интерфейса | Введите дополнительные параметры интерфейса, которые представляют собой сериализованный объект JSON для встроенной клавиатуры, настраиваемую клавиатуру ответа, инструкции по удалению клавиатуры ответа или принудительному ответу от пользователя, например {«inline_keyboard»: [[{«text»: «Текст кнопки 2», «url»: «https://botpress.org»}]]} или {«keyboard»: [[«Да», «Нет «], [» Может быть «]]} Дополнительную информацию о настраиваемых клавиатурах можно найти на странице Telegram Bot API. |
Поисковые запросы
Получайте обновления
Метод Get Updates нельзя использовать, пока активен веб-перехватчик. Сначала удалите веб-перехватчик.
Список возможных обновлений можно найти на странице Telegram Bot API.
Соединение | |
предел | Установить предел возвращаемых обновлений . Допускаются значения от 1 до 100. |
смещение | Идентификатор первого возвращаемого обновления. Должен быть на одно целое число больше, чем наибольшее значение среди идентификаторов ранее полученных обновлений. |
Получить список администраторов в чате
Получает список администраторов выбранного чата.
Получить чаты
Метод Get chats нельзя использовать, пока активен веб-перехватчик. Сначала удалите веб-перехватчик.
Используйте этот поиск , чтобы получить самую свежую информацию о чате.
Устранение неисправностей
Добавление бота в канал:
1. Щелкните правой кнопкой мыши по имени канала и выберите Просмотр информации о канале опцию .
2. Щелкните значок Добавить участника рядом с номером участника.
3. Начните вводить имя вашего бота в поле поиска.
4. Щелкните имя бота, чтобы выбрать бота, которого вы хотите добавить в канал.
5. Нажмите кнопку ПРИГЛАСИТЬ .
6. Сделайте бота администратором, нажав соответствующую кнопку.
7. Назначьте разрешения вашему боту и нажмите кнопку СОХРАНИТЬ .
Бот добавлен на канал.
Тестирование общественного канала
Чтобы протестировать общедоступный канал, вам необходимо получить Chat ID. ID чата является частью ссылки на канал.
Имя канала это НЕ канал ссылка / идентификатор чата.
Если ссылка на общедоступный канал, например, t. me/IMTtest , то @IMTtest
— это ваш ID чата .
Теперь вы можете отправить сообщение на общедоступный канал, используя модуль Send a Text Message или Reply .
Тестирование частного канала:
Вам необходимо получить Chat ID , чтобы протестировать частный канал.
Есть три способа получить ID:
- Получить идентификатор из веб-версии Telegram.
- Переключите частный канал на общедоступный, затем получите идентификатор (отправив или получив сообщение в Integromat) и снова переключите тип канала на частный .
- Пригласите бота
get_id_bot
в свой частный канал и используйте команду/ my_id @ get_id_bot
.
Получение идентификатора из веб-версии Telegram
1.Войдите в свою учетную запись Telegram через https://web.telegram.org.
2. Щелкните частный канал, для которого хотите получить идентификатор чата.
3. Скопируйте число между буквой c и знаком подчеркивания из URL-адреса.
Если URL-адрес https://web.telegram.org/#/im?p=c1424271061_11793697872942794544, скопируйте 1424271061
4. Вставьте номер в нужное поле и добавьте префикс -100
5.Тогда идентификатор чата частного канала будет -100 1424271061.
Теперь вы можете использовать ID в желаемом модуле Telegram Bot в Integromat .
Регистрация и вход
Не требуется. Вы можете авторизоваться на сайте telegram.org/auth, где можете изменить свои общедоступные настройки. Вы получите ключ в своем настольном приложении для отправки вашего логина.
Мой бот достигает пределов, как мне этого избежать?
При отправке сообщений в определенном чате избегайте отправки более одного сообщения в секунду.Мы можем разрешить короткие пакеты, превышающие этот предел, но в конечном итоге вы начнете получать 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не будет разрешать более 30 сообщений в секунду или около того. Для достижения наилучших результатов рассмотрите возможность рассылки уведомлений через большие интервалы в 8–12 часов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту в одну и ту же группу.
(источник: https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this)
Как определить ID приватного канала / группы:
Один из возможных способов определения идентификатора частного канала / группы:
1.Создайте новый сценарий.
2. Поместите Telegram Bot> Наблюдать за обновлениями модуля в сценарии.
3. Настройте модуль, создав веб-перехватчик.
4. Выполните сценарий.
5. Отправьте сообщение на приватный канал / группу.
6. Проверьте выходные данные модуля, щелкнув кружок над модулем.
7. Найдите идентификатор в выходном пакете:
Мой бот достигает пределов, как мне этого избежать?
При отправке сообщений в определенном чате избегайте отправки более одного сообщения в секунду. Мы можем разрешить короткие пакеты, превышающие этот предел, но в конечном итоге вы начнете получать 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не будет разрешать более 30 сообщений в секунду или около того. Для достижения наилучших результатов рассмотрите возможность рассылки уведомлений через большие интервалы в 8–12 часов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту в одну и ту же группу.
(источник: https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this)
Была ли эта статья полезной? 21 из 37 считают это полезнымКак создать своего первого чат-бота для Telegram с Node.js
Итак, сегодня утром вы проснулись с идеей разработать способ хранения и маркировки интересных статей, которые вы прочитали. Поэкспериментировав с этой идеей, вы понимаете, что чат-бот Telegram — самое удобное решение этой проблемы.
В этом руководстве мы расскажем вам обо всем, что вам нужно знать, чтобы создать своего первого чат-бота Telegram с использованием JavaScript и Node.js.
Для начала мы должны зарегистрировать нашего нового бота в так называемом Botfather, чтобы получить токен доступа к API.
Регистрация бота в @BotFather
Первый шаг к нашему собственному боту Telegram — это его регистрация в BotFather. BotFather — это сам бот, который значительно облегчает вашу жизнь. Он помогает вам регистрировать ботов, изменять описание бота, добавлять команды и предоставлять вам токен API для вашего бота.
Токен API — это самый важный шаг, поскольку он позволяет запускать код, который может выполнять задачи для бота.
1. В поисках отца-бота
The BotFather можно найти в Telegram, выполнив поиск по запросу «BotFather».Нажмите на официальный BotFather, обозначенный белой галочкой в синем круге.
2. Регистрация нового бота
Теперь мы нашли BotFather, давай поговорим с ним! Вы можете начать разговор, набрав / newbot
. BotFather попросит вас выбрать имя для обоих. Это имя может быть любым и необязательно уникальным. Для простоты я назвал своего бота ArticleBot
.
Далее вам будет предложено ввести имя пользователя для бота.Имя пользователя должно быть уникальным и заканчиваться на bot
. Поэтому я выбрал michiel_article_bot
, так как это имя пользователя еще не было занято. Это также будет имя пользователя, которое вы будете использовать для поиска бота в поле поиска Telegram.
FatherBot вернет сообщение об успехе с вашим токеном для доступа к Telegram HTTP API. Обязательно храните этот токен в надежном месте и ни в коем случае не передавайте его никому.
3. Изменение бота
Мы можем дополнительно модифицировать бота, добавив описание или задав команды, которые мы хотим, чтобы бот знал.Вы можете отправить боту сообщение с текстом / setcommands
. Он покажет вам, как вводить команды в формате команда1 - Описание
.
Для своего бота я установил команду закладка - сохранить URL интересной статьи
.
Если вы сейчас посмотрите своего бота, вы увидите значок команды в окне чата, который показывает вам доступные команды. Вы можете создать гораздо больше команд, которые действительно работают, и не перечислять их через BotFather. Однако с точки зрения UX я рекомендую зарегистрировать все доступные команды в BotFather.
Мы можем установить конфиденциальность бота с помощью / setprivacy
. Вы можете включить
или отключить
. По умолчанию для параметра конфиденциальности установлено значение включено
, что означает, что ваш бот будет получать только сообщения, которые начинаются с символа /
или с упоминанием имени пользователя бота.
Этот параметр можно отключить, что означает, что ваш бот может получать все сообщения, отправляемые группе. Вам нужно будет добавить бота в свою группу, чтобы он получал все эти сообщения.
Список всех доступных команд можно найти здесь:
Наконец, мы готовы приступить к программированию. Убедитесь, что у вас есть готовый токен доступа к API.
Кодирование вашей первой команды бота
Прежде всего, во время этого руководства мы будем использовать следующий код, который я подготовил.
Это простой проект Node.js, у которого всего две зависимости: dotenv
и node-telegram-bot-api
. Первый пакет используется для создания .Файл конфигурации env
, который будет содержать наш токен доступа к API. Второй пакет действует как оболочка Node.js для Telegram Bots API, которую мы будем использовать в этом руководстве.
1. Настройка проекта
Для начала клонируйте репозиторий GitHub и откройте проект в своем любимом редакторе. Затем создайте файл .env
в корне вашего проекта и добавьте одну строку — TOKEN = yourtoken
. Замените yourtoken
на токен, который вы получили от BotFather.
Чтобы убедиться, что соединение работает, перейдите к корню проекта в своем терминале и запустите npm start
. Команда npm start
запустит ваш файл app.js
и должна подключиться к вашему боту. Если вы не видите ошибок, то вперед!
2. Создайте первую команду бота
Прежде всего, мы должны создать бота, передав ему токен доступа к API и установив для параметра опроса значение true
. Это означает, что бот будет регулярно проверять входящие сообщения.
требуется ('dotenv'). Config ();
const TelegramBot = require ('node-telegram-bot-api');
const token = process.env.TOKEN;
const bot = новый TelegramBot (токен, {
опрос: правда
});
Теперь бот создан, давайте взглянем на следующий фрагмент кода, который представляет нашу команду / bookmark
. Мы устанавливаем прослушиватель входящих текстовых сообщений, onText
, и указываем поиск сообщения, которое начинается с / закладки
, поскольку мы указываем это в строке регулярного выражения.
Когда сообщение начинается с / закладки
, наш код будет выполнен. Прежде всего, мы сохраняем идентификатор чата, так как хотим иметь возможность отправлять сообщение в чат этого пользователя.
Затем мы проверяем, правильно ли пользователь использовал команду. Мы ожидаем, что URL-адрес будет передан с помощью такой команды: / bookmark www.google.com
.
Если URL-адрес не указан, мы отправляем сообщение обратно на сохраненный chatID
, предлагая пользователю предоставить нам URL-адрес.Если они отправляют URL-адрес, мы сохраняем URL-адрес и отправляем им сообщение об успешном завершении.
bot.onText (/ \ / bookmark /, (msg, match) => {
const chatId = msg.chat.id;
const url = match.input.split ('') [1];
if (url === undefined) {
bot.sendMessage (
chatId,
'Укажите URL статьи!',
);
вернуть;
}
URLs.push (URL);
bot.sendMessage (
chatId,
'URL успешно сохранен!',
);
});
Вы могли заметить, что мы используем два параметра для функции обратного вызова: msg
и match
. Свойство msg
представляет собой полное сообщение, которое вы получаете, тогда как match
представляет результат регулярного выражения, которое мы определили. На изображении ниже показано полное сообщение msg
, а после ----
показано совпадение
.
Когда пробуем нашу команду в чате с ботом, получаем следующий результат:
Если вы видите такой же результат, поздравляем! Вы только что создали свою первую команду бота.Давайте рассмотрим более сложные параметры, такие как отправка клавиатур с предопределенными параметрами.
3. Параметры клавиатуры
Теперь мы знаем, как создать собственную команду, давайте подробнее рассмотрим параметры клавиатуры. Можно отправить предопределенную клавиатуру с вашей командой, чтобы ограничить возможности пользователя. Это может быть так же просто, как запретить пользователю отвечать Да
или Нет
.
3. 1 Обычная клавиатура
Давайте взглянем на следующий фрагмент кода.Мы добавили третий параметр в нашу функцию bot.sendMessage
. Этот объект определяет параметры нашей клавиатуры. Если вы внимательно посмотрите на reply_markup.keyboard
, вы найдете массив, который содержит больше массивов. Каждый массив здесь представляет собой строку с параметрами. Это поможет вам выбрать более важные параметры форматирования или более длинный текст кнопки.
bot.onText (/ \ / keyboard /, (msg) => {
bot.sendMessage (msg.chat.id, 'Альтернативная раскладка клавиатуры', {
'reply_markup': {
'keyboard': [['Образец текста', 'Второй образец'], ['Клавиатура'], ['Я робот']],
resize_keyboard: правда,
one_time_keyboard: правда,
force_reply: правда,
}
});
});
Этот фрагмент кода дает следующий результат при отправке нашему боту сообщения / keyboard
.
Кроме того, мы также можем определить встроенные клавиатуры с дополнительными данными для каждой опции.
3.1 Встроенная клавиатура
Встроенная клавиатура будет отображаться в чате, а не под полем ввода сообщения. Поскольку мы хотим пометить отправляемые URL-адреса, мы можем сделать это, показывая пользователю доступные категории. Вот так сейчас выглядит наша клавиатура:
Давайте посмотрим на код внизу. reply_markup
теперь определяет свойство inline_keyboard
.Остальная разметка остается прежней. Каждый массив представляет собой строку. Однако вместо того, чтобы просто передавать текст, мы также можем передать объект с текстом
и callback_data
, чтобы узнать, какой вариант вы выбрали.
bot.onText (/ \ / label /, (msg, match) => {
const chatId = msg.chat.id;
const url = match.input.split ('') [1];
if (url === undefined) {
bot.sendMessage (
chatId,
'Укажите URL статьи!',
);
вернуть;
}
tempSiteURL = url;
бот.Отправить сообщение(
chatId,
'URL успешно сохранен!',
{
reply_markup: {
inline_keyboard: [[
{
текст: "Развитие",
callback_data: 'разработка'
}, {
текст: "Образ жизни",
callback_data: 'стиль жизни'
}, {
текст: 'Другое',
callback_data: 'другое'
}
]]
}
}
);
});
В следующем разделе объясняется, как использовать обработчик для получения данных обратного вызова.
3.2 Обратный вызов с клавиатуры
В случае, если мы хотим получить данные обратного вызова, мы должны прослушать этот тип события.
bot.on ('callback_query', (callbackQuery) => {
константное сообщение = callbackQuery.message;
const category = callbackQuery.data;
URLLabels.push ({
url: tempSiteURL,
ярлык: категория,
});
tempSiteURL = '';
bot.sendMessage (message.chat.id, `URL был помечен категорией" $ {category} "`);
});
Свойство сообщения в callbackQuery
содержит все сообщение от пользователя.Свойство data
содержит данные обратного вызова нашей категории.
Возможно, вы уже заметили ошибку дизайна. Что, если у нас есть две команды, которые отправляют данные обратного вызова? Вы можете получить очень странное поведение или ответы.
Следовательно, рекомендуется отправить обратно строковый объект JSON, который также содержит метку, чтобы определить, какой команде принадлежат данные обратного вызова. Обратите внимание на следующую передовую практику:
const inlineKeyboard = {
reply_markup: {
inline_keyboard: [
[
{
текст: "ДА",
callback_data: JSON.stringify ({
'команда': 'mycommand1',
'answer': 'ДА'
})
},
{
текст: "НЕТ",
callback_data: JSON.stringify ({
'команда': 'mycommand1',
'ответ': 'НЕТ'
})
},
]
]
}
};
Вы можете использовать данные из опции команды
, чтобы переключиться на специфическую бизнес-логику этой команды.
Мы на пути к тому, чтобы стать джедаем Telegram Bot. Чтобы стать полноценным мастером, давайте рассмотрим запросы данных.
3.3 Запросы данных — номер телефона
Можно запросить данные, например номер телефона или геолокацию. В этом руководстве мы покажем, как запросить номер телефона с альтернативной клавиатурой.
const requestPhoneKeyboard = {
"reply_markup": {
"one_time_keyboard": правда,
"keyboard": [[{
текст: "Мой номер телефона",
request_contact: правда,
one_time_keyboard: правда
}], ["Отмена"]]
}
};
бот.onText (/ \ / phone /, (msg) => {
bot.sendMessage (msg.chat.id, «Можно ли получить доступ к вашему номеру телефона?», requestPhoneKeyboard);
});
Пользователь получит в чате запрос:
При нажатии на кнопку Мой номер телефона
вы получите следующий запрос номера телефона:
Вот как это выглядит после того, как мы дадим доступ:
Наконец-то! Вы — всесторонне изученный джедай Telegram Bot. На данный момент дополнительную информацию и ресурсы можно найти здесь:
Следите за обновлениями и здесь — в следующем месяце мы вернемся с учебным пособием, в котором более подробно рассматриваются расширенные функции Telegram API.
.