Всем привет. На днях начал своё знакомство с консольным клиентом для Telegram . Решил по этому поводу написать пару статей. Для начала расскажу, как это дело установить, в следующей части опишу, как запускать telegram-cli в виде демона в системах с systemd, а в качестве бонуса будет статья о том, как написать обёртку под всё это для zsh, и, моё любимое, автодополнение по tab’у.
Установка
У меня стоит Fedora 22 в репозиториях которой присутствует telegram-cli , поэтому если вы в таких же условиях, то можно сделать так:
sudo dnf install telegram-cli
Но мы пойдём другим путём и установим его из сорцов, тем более что это делается очень просто.
Сборка из исходников
Историческая справка
Раньше в UNIX системах директория /opt использовалась для пакетов сторонних производителей. opt это сокращение от option, что можно перевести как опциональный или необязательный; туда, например попадали пакеты, за которые вы заплатили деньги. В BSD Unix системах вместо /opt для этих целей использовали /usr/local .Установка скрипта Телеграм бота
via
Я предпочитаю устанавливать сторонние программы в директорию /opt . Перейдём в неё и клонируем репозиторий
sudo git clone —recursive https://github.com/vysheng/tg.git /opt/tg cd /opt/tg
Дальше нужно установить зависимости. В исторукции из репозитория написано установить libjansson-devel , который моему dnf’у найти не удалось, зато он нашёл jansson-devel .
sudo dnf install -y lua-devel openssl-devel libconfig-devel readline-devel libevent-devel jansson-devel python-devel
Как запустить бота в телеграмме через командную строку
При разработке любых приложений их приходится тестировать, а значит, инструмент должен быть рабочим. В современных реалиях просто необходимо, чтобы в продакшене находился только рабочий код, соответственно вся разработка должна вестись на локале. Сегодня поговорим о том, как запустить телеграм бота на локальной машине без наличия белого IP, HTTPS сертификата и т.п.
Шаг 1
Первое, что нам понадобится сделать, это зарегистрировать тестового бота в Telegram.
Для этого пишем боту BotFather сообщение
Далее следуем инструкциям и получаем токен для тестового бота, например:
Шаг 2
Для того, чтобы Telegram бот работал, ему надо обращаться к URL по протоколу https и у домена должен быть сертификат. Для решения этой проблемы существует сервис ngrok .
Он позволяет создать туннель с локальной машины к серверу, у которого есть все необходимые сертификаты.
Регистрируемся и авторизуемся на сайте. Прямо на главной странице будет инструкция, что нужно сделать:
- Скачать файл
- Распаковать
- Присоединиться к своему аккаунту
- Запустить туннель на 8000 порту ./ngrok http 8000
Шаг 3
Теперь нужно зарегистрировать бот на сервер ngrok. Надо понимать, что сервер поднимается только тогда, когда запущен туннель и каждый раз это новый сервер, поэтому после перезагрузки туннеля, шаг 3 нужно будет делать заново для продолжения работы с ботом.
Для регистрации бота, нужно пройти по адресу
где OmoTestBot — название тестового бота
Подробнее о установке Webhook можно почитать здесь
Источник: omoroot.ru
Как написать телеграм бота на питоне?
Для написания телеграм бота на Python, вам необходимо выполнить следующие шаги:
2. Установите библиотеку python-telegram-bot, используя команду pip install python-telegram-bot в консоли вашего компьютера.
Чтобы открыть командную строку на Windows, в поиске найдите прогрумму CMD и запустите ее.
Привем установки библиотеки python-telegram-bot
3. Запустите редактор Visual Studio Code (либо любой другой) и создайте файл main.py
4. Импортируйте необходимые библиотеки в файл main.py:
from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
token = «ваш токен»
6. Создайте функцию для обработки команды hello — данная функция будет отвечать пользователю строкой Hello с именем пользователя
async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text(f’Hello ‘)
7. Следующей командой создаем инстанс бота с использованием токена
app = ApplicationBuilder().token(token).build()
8. Добавляем обработчик команды /hello в вашем боте — для этого мы и готовили функцию hello выше.
app.add_handler(CommandHandler(«hello», hello))
9. Наконец запускаем бота
app.run_polling()
Пока программа запущена — найдите вашего бота в telegram — и отправьте вашему боту команду /hello
Пример использования бота.
Поздравляю! Вы написали своего первого бота. Попробуйте написать другие фунциии и зарегистрировать новые команды.
Итоговый код — должен выглядеть примерно так:
from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes token = «ваш токен» # Функция отвечает пользователю Hello с указанием имени пользователя async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text(f’Hello ‘) app = ApplicationBuilder().token(token).build() app.add_handler(CommandHandler(«hello», hello)) app.run_polling()
Источник: alfa-code.com