Как запустить бота в Телеграмме через командную строку

Всем привет. На днях начал своё знакомство с консольным клиентом для 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 сертификата и т.п.

Еще по теме:  Удаленный аккаунт Телеграмм узнать номер

Telegram BotFather

Шаг 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

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