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

Некоторые мессенджеры, такие как Telegram, иногда предоставляют API, который можно использовать для создания бота. Боты — это полезная в хозяйстве вещь. Например — хороший способ взаимодействия с приложениями, работающими на вашем домашнем сервере, без заморочек (в плане безопасности) с открытием директорий, проброса и подобной нездоровой фигни. Данный тип ботов легко написать, и они очень универсальны. В этой статье я покажу, как создать бота с помощью Python и Telegram.

Создание бота с помощью Python и Telegram

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

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

Бот состоит из двух частей:

  1. Код для взаимодействия с Selenium WebDriver.
  2. Оповещения об изменениях через Telegram.

Для начала нужно скачать с сайта Selenium WebDriver один драйвер для браузера:

КАК СОЗДАТЬ И ЗАЛИТЬ НА СЕРВЕР ТЕЛЕГРАМ-БОТА НА PYTHON ЗА 15 МИНУТ?

Скачать Selenium WebDriver

Затем используем библиотеку Splinter, которая абстрагирует взаимодействие с драйвером.

from splinter import Browser
with Browser ( ) as browser :
browser . visit ( «http://www.google.com» )
# Find and fill out the search form.
browser . find_by_name ( ‘q’ ) . fill ( ‘splinter’ )
# Find and click the ‘search’ button.
button = browser . find_by_name ( ‘btnK’ ) . click ( )
# Check for result on the page.
if browser . is_text_present ( ‘splinter.readthedocs.io’ ) :
print ( «Yes, the official website was found!» )
print ( «No, it wasn’t found. » )

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

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

Создать бот Python Telegram

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

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

import telegram
class Telegram :
def __init__ ( self , token : str ) :
self . bot = telegram . Bot ( token = token )
self . offset = 0
def send ( self , chat_id , message ) :
self . bot . send_message ( chat_id = chat_id , text = message )

Добавьте бота в группу.

Пишем TELEGRAM бота на Python

Ссылка для получения обновлений бота:

https : //api.telegram.org/bot/getUpdates
https : //api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates

Найдите объект chat :

«update_id» : 8393 ,
«message_id» : 3 ,
«first_name» : «AAA»
«date» : 25497 ,
«new_chat_participant» : <
«first_name» : «NAME» ,
«username» : «YOUR_BOT_NAME»

Пишем Telegram Bot на Python

Python – язык программирования высокого уровня, который появился сравнительно недавно. Однако его простота и легкий синтаксис уже сделали язык лидером в программировании. Многие предпочитают Python для создания Telegram Bot.

Еще по теме:  Бот в телеге по гос номеру

Что требуется для создания бота

  1. Среда программирования Python.
  2. Если у вас установлена версия до 3.4, то следует скачать Gid и Pip. Первое – система управления версиями, второе – система управления пакетами Python. Pip позволяет устанавливать пакеты из командной строки.
  3. Регистрация на GitHub.com
  4. Регистрация на сервере Heroku.com.

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

Создаем бота

В результате вы получите токен – символьно-числовую последовательность, уникальную для каждого бота Telegram. Именно с помощью этого идентификатора отправляются запросы на сайт https://api.telegram.org.

Каждый запрос имеет вид:

Методы описаны в документации к Telegram Bot API и являются стандартными. Задача программиста при написании бота заключается в создании кода, который получает сообщения от пользователя и отправляет команду боту на выполнение действий. Запрос может выглядеть следующим образом:

Это пример отправки сообщения для клиента Telegram. Обязательно необходимо знать параметр id_chat – это идентификатор чата. Узнать его можно из ответа, который присылает сервер, который имеет вид JSON-строки:

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

Пишем бота для Telegram на Python

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

  1. Скачайте Python с официального сайта https://www.python.org/downloads/
  2. Установите, обязательно указав «Add Python to Path».
  3. Проверьте установку, открыв командную строку и набрав pip. Должен появится справочный материал по pip.

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

import requests
import datetime
#Установка адреса бота
url = https://api.telegram.org/bot507226896:AAGT_fsEO1milOkqbNp-VolQDJ0tGjaPvD7/
#Поиск последнего сообщения из массива чата с пользователем Telegram.
def lastUpdate(dataEnd):
res = dataEnd[‘result’]
totalUpdates = len(res) — 1
return res[totalUpdates]
#Получение идентификатора чата Telegram
def getChatID(update):
chatID = update[‘message’][‘chat’][‘id’]
return chatID
#отправка запроса sendMessage боту
def sendResp(chat, value):
settings =
resp = requests.post(url + ‘sendMessage’, data=settings)
return resp
#Get-запрос на обновление информации к боту. Результат – строка json. Метод .json позволяет развернуть ее в массив
def getUpdatesJson(request):
settings =
response = requests.get(request + ‘getUpdates’, data=settings)
return response.json()
#Главная функция
def main():
chatID = getChatID(lastUpdate(getUpdatesJson(url)))
sendResp(chatID, ‘Ваше сообщение’)
updateID = lastUpdate(getUpdatesJson(url))[‘update_id’]
#Бесконечный цикл, который отправляет запросы боту на получение обновлений
while True:
#Если обновление есть, отправляем сообщение
if updateID == lastUpdate(getUpdatesJson(url))[‘update_id’]:
sendResp(getChatID(lastUpdate(getUpdatesJson(url))), ‘проба’)
updateID += 1
sleep(1)
#Запуск главной функции
if __name__ == ‘__main__’:
main()

Python чувствителен к пробелам и табуляции, поэтому выполните Format-Untabify Region.

Запустите здесь же в среде разработки. В созданном боте Telegram должно появиться сообщение «Ваше сообщение Проба».

Разворачиваем проект на сервере

Самое сложное – заставить наш проект для Telegram работать на сервере. Мы воспользуемся бесплатным сервисом Heroku.

  1. Устанавливаем окружение, набирая pip install pipenv – ее надо набрать в командной строке.
  2. Регистрируемся на Heroku.com
  3. Устанавливаем интерфейс командной строки Heroku (CLI)
    https://devcenter.heroku.com/articles/getting-started-with-python#set-up
  4. В командной строке набираем Heroku и Enter
  5. Вводим адрес электронной почты, с которым регистрировались на сервере, и пароль, придуманный при регистрации
  6. Создаем папку. Ее лучше создать в папке с Python. Для примера создадим папку run
  7. Набираем virtualenv run , чтобы инициализировать в ней virtualenv.
  8. Регистрируемся на github.com и создаем свой репозиторий
  9. Переходим в папку run с помощью cd run
  10. Клонируем репозиторий git командой git clone https:/github.com/ВАШЕ_ИМЯ/ВАШ РЕПОЗИТОРИЙ . ВАШЕ_ИМЯ – имя пользователя на github
  11. Скопируйте скрипт в папку созданного репозитория (она появится в run)
  12. Зайдите в папку run/scripts , чтобы запустить файл activate.bat. Если он сработал успешно, то перед адресом в командной строке будет стоять название вашей папки. Например,
  13. Перейдем в папку run , затем в папку репозитория с помощью команды cd
  14. Установим модуль requests. Наберем pip install requests
  15. Чтобы создать зависимость введите pip freeze > requirements.txt
  16. В папке run создайте файл Procfile или Procfile.windows (для Windows) и сохраните в нем строку web: python bot.py, где bot.py – имя вашего файла с программой для бота
  17. В папке репозитория создайте файл __init__.py. Он будет пустым
Еще по теме:  Алесенька из Телеграмма кто это

Далее последовательно набирайте в командной строке

Вы увидите сообщение об инициализации пустого репозитория.

Внимание, после add пробел и точка! Добавляет файлы в локальный депозиторий.

Выполнение команды занимает некоторое время, необходимо подождать.

git commit -m ‘short message that describe changes to commit’
Фиксирует изменения в репозитории.
git push -u https://github.com/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ИМЯ_РЕПОЗИТОРИЯ
Позволит развернуть проект на github.

Затем выполните команды:

heroku create имя проекта

В результате вы получите адрес вашего проекта, например, runbot.herokuapp.com.

git push heroku master

Ждем окончания процесса компиляции проекта.

heroku ps:scale web=1
heroku open

Последняя команда откроет ваше приложение на сервере. Бот на Питоне для Телеграмма начнет свою работу.

На сайте с документацией можно посмотреть другие Telegram Bot примеры на Python.

Источник: telegramzy.ru

Как запустить бота телеграмм на питоне

Бот на Python, использующий ChatGPT для Telegram [Гайд]

Нейросети Бот на Python, использующий ChatGPT для Telegram [Гайд]

2023-02-09T16:51:43.485000+03:00
Оценки статьи
Еще никто не оценил статью

В этой статье мы реализуем бота, работающего на базе ChatGPT, с помощью языка Python и библиотеки aiogram. А также проверим его в работе!

Примечание: у вас уже должен быть зарегистрирован аккаунт в ChatGPT — OpenAI, если вы этого ещё не сделали, можете ознакомиться с этой статьёй

Дополнительно (может быть полезно): доступен гайд для запуска данного telegram-бота с ChatGPT на VPS сервере, используя Docker контейнер.

Получаем API токен для ChatGPT

  1. Нам необходимо получить токен для API, переходим на сайт: platform.openai.com

На сайте нажимаем Personal, и выбираем View API keys:

Далее нажимаем Create new secret key

Получаем наш ключ для ChatGPT API.

Опционально: вы можете изучить документацию и другие моменты в управлении ChatGPT.

Получаем токен для бота в телеграмм

Получаем ключ для доступа к API, на скриншоте он закрашен. Сохраняем в удобное место.

Создаем бота на Python

  1. Открываем папку, где хотим хранить проект с помощью IDE редактора, например VS CODE, открываем терминал, пишем команду cmd и создаем виртуальное окружение с помощью команды py -m venv venv . На компьютере у вас должен быть установлен Python. Скачать его можно на официальном сайте.

Далее активируем виртуальное окружение следующей командой: cd venv/scripts activate и возвращаемся в корневой каталог с помощью команды cd ../../ , в терминале у нас появится, что вирутальное окружение активировано, в скобках (venv).

Далее создаем файл рядом с venv под названием main.py.

Еще по теме:  Бот Whatsapp или Telegram

Теперь нам необходимо установить два пакета с помощью терминала: pip install openai aiogram

Результат выполнения команды:

(venv) C:UsersRazilatorDesktopProjectsProgHunterBot>pip install openai aiogram Collecting openai Downloading openai-0.26.5.tar.gz (55 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.5/55.5 kB 481.5 kB/s eta 0:00:00 Installing build dependencies done Getting requirements to build wheel

done Installing backend dependencies done Preparing metadata (pyproject.toml) done Collecting aiogram Using cached aiogram-2.25.1-py3-none-any.whl (203 kB) Collecting requests>=2.20 Using cached requests-2.28.2-py3-none-any.whl (62 kB) Collecting tqdm Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB) Collecting aiohttp Using cached aiohttp-3.8.3-cp311-cp311-win_amd64.whl (317 kB) Collecting Babel2.10.0,>=2.9.1 Using cached Babel-2.9.1-py2.py3-none-any.whl (8.8 MB) Collecting certifi>=2021.10.8 Using cached certifi-2022.12.7-py3-none-any.whl (155 kB) Collecting magic-filter>=1.0.9 Using cached magic_filter-1.0.9-py3-none-any.whl (9.3 kB) Collecting attrs>=17.3.0 Using cached attrs-22.2.0-py3-none-any.whl (60 kB) Collecting charset-normalizer3.0,>=2.0 Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB) Collecting multidict7.0,>=4.5 Using cached multidict-6.0.4-cp311-cp311-win_amd64.whl (28 kB) Collecting async-timeout5.0,>=4.0.0a3 Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB) Collecting yarl2.0,>=1.0 Using cached yarl-1.8.2-cp311-cp311-win_amd64.whl (55 kB) Collecting frozenlist>=1.1.1 Using cached frozenlist-1.3.3-cp311-cp311-win_amd64.whl (32 kB) Collecting aiosignal>=1.1.2 Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) Collecting pytz>=2015.7 Using cached pytz-2022.7.1-py2.py3-none-any.whl (499 kB) Collecting idna4,>=2.5 Using cached idna-3.4-py3-none-any.whl (61 kB) Collecting urllib31.27,>=1.21.1 Using cached urllib3-1.26.14-py2.py3-none-any.whl (140 kB) Collecting colorama Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB) Building wheels for collected packages: openai Building wheel for openai (pyproject.toml) done Created wheel for openai: filename=openai-0.26.5-py3-none-any.whl size=67643 sha256=37dc116c709234495442341b7ee6aa3dd3bc4106aaff6db62e06b270896d5d7e Stored in directory: c:usersrazilatorappdatalocalpipcachewheelsea6cec84e3e339332a539336f4b1c6990779c508ee73a760b2697e6 Successfully built openai Installing collected packages: pytz, urllib3, multidict, magic-filter, idna, frozenlist, colorama, charset-normalizer, certifi, Babel, attrs, async-timeout, yarl, tqdm, requests, aiosignal, aiohttp, openai, aiogram Successfully installed Babel-2.9.1 aiogram-2.25.1 aiohttp-3.8.3 aiosignal-1.3.1 async-timeout-4.0.2 attrs-22.2.0 certifi-2022.12.7 charset-normalizer-2.1.1 colorama-0.4.6 frozenlist-1.3.3 idna-3.4 magic-filter-1.0.9 multidict-6.0.4 openai-0.26.5 pytz-2022.7.1 requests-2.28.2 tqdm-4.64.1 urllib3-1.26.14 yarl-1.8.2 [notice] A new release of pip available: 22.3 -> 23.0 [notice] To update, run: python.exe -m pip install —upgrade pip

Теперь в наш файл main.py добавляем следующий фрагмент кода:

В примере выше вы должны вставить токены, которые сохранили соответственно для телеграмм бота и для OpenAI ChatGPT.

Это самые стандартные настройки для запуска и работы бота и стандартные настройки для нейросети, чтоб он вам отвечал непосредственно от нейросети ChatGPT в телеграмме. В коде я передаю ответ от нейросети в виде пришедшего ответа по API.

Запускам бота, проверяем работу

Теперь нам необходимо запустить бота, для этого в терминале напишите py main.py и если все сделали правильно, результат будет следующим:

(venv) C:UsersRazilatorDesktopProjectsProgHunterBot>py main.py Updates were skipped successfully.

Теперь напишем нашему боту

Отлично. Надеюсь у вас все получилось! Иногда может случится такое, что сервер будет выдавать ошибку, к сожалению, это просто нагружен сам сервер нейросети.

Плюсы способа с телеграм-ботом:

  • Вы можете обойтись без VPN.
  • Всегда в легкой доступности. Минусы:
  • Ограниченное кол-во на использование, OpenAI выдает вам 30$ как проверка. На самом деле вы можете долго им пользоваться. Тарификация маленькая и если будет желание, можете купить подписку. Это касается только использования ChatGPT через API.
  • Общение не в рамках контекста. Нейросеть просто не запоминает ваши предудыщие сообщения через API, как это реализовано на самом сайте с нейросетью.

Добро пожаловать в Блог Разработчика Владислава Александровича.

Ведется медленная, но уверенная разработка функционала сайта.

Django Core: 0.3.3 / Next.js 0.2.3 / UPD: 17.05.2023

Источник: proghunter.ru

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