В этом посте я объясню, как создать бота Telegram на Python. Todoist — отличный инструмент для управления списками дел. Хотя этот пост может быть просто общим руководством по созданию бота Telegram, я расскажу о подключении к Todoist API и внедрении его возможностей в Telegram, чтобы вы могли узнать больше о работе с реальным API и взаимодействии с пользователями в ботах Telegram.
Предполагается, что вы знакомы с основами Python. Вы узнаете:
- Создание бота Telegram с отцом бота Telegram
- Работа с API в Python
- Написание скрипта бота Telegram на Python
- Взаимодействие с пользователями в боте Telegram (отображение кнопок, ответ на сообщение и т. Д.)
Создание бота Telegram
Прежде всего, нам нужно получить дескриптор Telegram для нашего бота. Кроме того, нам нужен токен доступа для подключения и взаимодействия с Telegram.
Получите имя пользователя бота (дескриптор Telegram) и токен доступа
Пишем TELEGRAM бота на Python
После этого вы получите сообщение с данными вашего бота, включая токен доступа вашего бота для HTTP API. Мы будем использовать это в следующих шагах.
Взаимодействие с API в Python
Чтобы создать полезного бота для Telegram, вам необходимо хорошо разбираться в работе с API.
Я прочитал много руководств по созданию ботов Telegram, но я хотел написать бота, который работает с реальным API, а не бота, чтобы показывать картинки с кошками (что, кстати, тоже очень круто).
Todoist — отличный инструмент для управления делами. Несмотря на то, что у него отличное мобильное приложение, оно может помочь вам или вашей команде выполнять ваши задачи в Telegram.
Также, используя Todoist API, вы узнаете, как взаимодействовать с реальными API.
APIHandler Класс
У Todoist есть официальная библиотека Python API. С его помощью вы можете легко взаимодействовать с Todoist API. Сначала мы собираемся изучить эту официальную библиотеку. Затем с помощью пакета запросов Python мы взаимодействуем с Todoist REST API. Поскольку многие сторонние API не поддерживают такие библиотеки Python, важно научиться использовать пакет запросов Python для выполнения HTTP-запросов для RESTful API.
Получение токена доступа к Todoist
Прежде чем мы начнем, вам нужно получить токен доступа для Todoist API. Просто зайдите в Консоль приложения Todoist и создайте новое приложение. После создания приложения вы увидите client id и client secret , которые необходимо использовать в приложении производственного уровня для аутентификации пользователей.
На данный момент нам нужно только получить токен доступа для наших тестов. Прокрутите вниз, и вы увидите свой токен доступа. Теперь давайте попробуем это в действии.
Официальная библиотека Python Todoist
Теперь установите пакет TodoistAPI с помощью программы Python, выполнив эту команду: pip install todoist-python
Используя библиотеку API Todoist, получить проекты очень просто.
Не забудьте указать свой токен доступа в api_token переменную.
Взаимодействие с RESTful API с использованием запросов Python
Для вызова API вам необходимо использовать пакет запросов Python. Установите его с помощью pip: pip install requests
Пакет запросов имеет две основные функции, которые мы можем использовать для выполнения get или post запросов.
Создание бота в Телеграм Питон 3: пример программирования, как сделать кнопки для чата и написать код
FAQ
Автор fast12v0_steleg На чтение 7 мин Просмотров 200 Опубликовано 14.01.2020
Каждый, кто хоть раз сталкивался с мессенджером Телеграм, был впечатлен его функционалом. Здесь позволено не только общаться с друзьями в личных сообщениях, читать новости и делать каналы.
Преимуществом сервиса является возможность создавать и использовать ботов. Программировать их можно на любом языке, но самым распространенным выбором сегодня стал Питон. В статье подробно рассмотрим, как сделать python telegram bot.
Немного теории об API
Application Programming Interface – интерфейс, при помощи которого разработчик способен формировать приложения. Инструкция по использованию представлена на сайте stelegram.ru.
Благодаря ему получается настроить разные части веб программы таким образом, чтобы они гармонично и корректно взаимодействовали между собой.
Изначально api использовался для передачи информации и приказов между разными переменными программами. Сегодня он дает возможность получить доступ к ресурсам на другом сервере.
Его применение имеет такие достоинства:
- Доступность партнерских программ.
- Работа с пре-форматированными ссылками, загружающимися одновременно с ID.
- Возможность предоставлять максимально точные и актуальные данные в любой момент времени.
- Получение ответных данных в JSON или XML форматах.
- Публичными. К ним легко получить доступ.
- Приватными. Может использоваться исключительно внутри одной компании. Если у нее разработано много продуктов, то интерфейс позволяет разным программам взаимодействовать между собой.
К основным задачам Application Programming Interface относят:
- помощь в написании кодов;
- преобразование сложных задач в простые.
Инструкция по созданию телеграм-бот на Python
Существует несколько вариантов получения собственного робота:
- Написать его самостоятельно. Для этого можно использовать различные языки программирования. Одним из наиболее понятных и востребованных на данный момент является Питон. Такой способ хоть и трудоемкий, но при этом позволяет получить универсальное решение.
- Воспользоваться услугами конструктора. Но здесь можно столкнуться с ограниченным функционалом, которого не всегда бывает достаточно, чтобы воплотить то, что вы хотите.
- Покупка. Однако, нужно понимать, что в основном, чтобы написать telebot, используется язык python. А он считается настолько легким, что применить его могут даже новички, потому лучше попробовать самому.
Известно два класса ботов, способных самообучаться и работать по определенным правилам:
- Первый вид менее распространен. Робот обучен определенным правилам, основываясь на которые он отвечает на поставленные вопросы. Bot занимается регулярной обработкой простых запросы, а очень сложные у него могут вызвать проблемы.
- Самообучающийся робот более эффективен. Он бывает следующих видов:
- поисковым – использует для ответа реплики, прописанные в базе библиотеки. В зависимости от контекста разговора он выбирает text из списка;
- генеративным – способен сам создавать сообщения на основе изученных слов в запросе.
Свой телеграм-бот на Питон можно сделать самостоятельно. Рассмотрим подробную инструкцию.
Регистрация бота
Дополнительно укажите name. В ответ он пришлет ссылку на документацию (documentation) и токен. Их желательно сразу сохранить, так как они будут единственным ключом к авторизации при взаимодействии с помощником.
Установка
Для начала проводится установка программы.
Есть несколько способов:
- Скачать с сайта, нажав значение install.
- Те, кто пользуется ОС Linux, имеют возможность запустить ее из менеджера пакетов.
- Владельцы macOS должны поставить приложение Homebrew.
- Воспользоваться интерпритатором программы, позволяющей работать онлайн.
- При работе на мобильном устройстве представлена среда программирования Питон.
После загрузки следует установить pip – систему управления пакетами. Важно использовать последние версии. При необходимости можно провести ее обновление.
Написание кода
За создание и функционирование робота отвечает модуль python telegram bot api. Для этого нужно послать следующее: pip install pyTelegramBotAPI.
Писать код получится где угодно. Это может быть вордовский файл или блокнот. Но гораздо эффективнее это делать в умной среде. Здесь автоматически будут подсвечиваться возможные ошибки в проекте.
Создание кода начинаем с подключения телебота. Здесь понадобится сохраненный раньше токен. Первая строка будет выглядеть следующим образом: message: TOKEN=ключ, который прислал бот.
Во второй строке создает объект, который обзываем bot. В аргументах прописывается код аутентификации.
Далее необходимо продумать, что должен уметь делать помощник. В каталоге pyTelegramBotAPI есть декораторы, используя которые робот научится отвечать на стандартные вопросы.
Протестировать его можно, выполнив команду python полный_ путь_ к_ файлу/test.py. робот должен отвечать.
Настройка и запуск бота
Для того, чтобы помощник мог работать, нужно:
- Войти в мессенджер.
- Открыть аккаунт робота.
- В новом диалоговом окне кликнуть на изображение с тремя точками вверху.
- Дальше перейти к пункту Настройки.
Чтобы запустить робота, нужно:
- В строке поиска на клавиатуре руками ввести name помощника и начать диалог с ним.
- Добавить его к каналу при помощи кнопки «Добавить нового участника».
- Осталось из списка выбрать нужный вариант и кликнуть элемент «Invite».
Обработчики команд
Для обработки используется специальная программа Handler. Она работает с медиафайлами и текстовым материалом. Но в нашем случае утилита нужна для того, чтобы передавать боту команды.
Обработчика также можно добавить самостоятельно. В таком случае на первой строке следует вбить «handler». Этот параметр срабатывает всегда, за исключением ввода «help» или «старт».
Обработчики кнопок
В основе программы telegram api python также будет исходник клавиатуры. При подготовке к работе KeyboardButton обязательным параметром является текст (text), который юзер сможет переслать после нажатия на данную клавишу.
При написании кода используются различные методы:
- Add – количество кнопок любое. При этом они выстраиваются в ряд. Если установленная изначально ширина уже достигнута, импортируем их.
- Row – число клавиш также не ограничено, но все они расположены в одной строке.
- Insert – напоминает первый способ, но иконки добавляются к последнему ряду.
Встроенный режим
Это один вид взаимодействия с ботами. С его помощью они получили еще больше возможностей. Такие роботы способны выполнять любые задачи. Например, из examples: отправка text из сайта в чат, размещение гифки или картинки.
Генератор для диалогового бота
Используя конструкцию yield from, роботы создают друг для друга курс на выполнение определенной задачи. Для этого применяется модуль itertools.
Генераторы для python telegram bot proxy являются отличным инструментом. Они дают возможность упростить код и продолжить беседу с нужного момента.
Развертывание бота на сервере
Это завершающий этап создания помощника в Тelegram. Для этого не нужно приобретать дорогую аппаратуру. Можно воспользоваться облачными прокси ресурсами с протоколом mtproto, где предлагают разместить любое приложение бесплатно.
Вначале придется зарегистрировать аккаунт на GitHub. С этой учетной записью получится развернуть бота на Heroku proxy. Если приложение не работает, рекомендуется проверить журналы.
Из-за блокировки мессенджера в России, им нельзя воспользоваться. Но можно пойти в обход запрету, установив VPN.
Выводы
Python – программа для написания скриптов в Телеграм с нуля, которые станут отличным помощником владельцу канала. Они умеют автопостить, форматировать материал, ведут статистику, создают кнопки на русском или другом языке и прочее.
Детальную инструкцию увидите на видео:
Источник: stelegram.ru
Как сделать свой личный ChatGPT в Telegram за 5 минут
Бот ChatGPT продолжает стремительно набирать популярность во всём мире и становится наиполезнейшим инструментом для тех, кто ищет быстрый и удобный способ получить нужную информацию.
Однако официально бот доступен только на сайте компании OpenAI и не имеет собственного приложения, что далеко не всегда удобно, особенно для пользователей из России, где доступ к сайту ограничен.
Но выход есть, в начале этого месяца OpenAI выпустила своё API в публичный доступ и теперь ChatGPT можно вывести за пределы своего сайта. В Telegram появилась уже целая куча ботов ChatGPT, однако все они так или иначе требуют свою плату с пользователей.
Поэтому мы решили написать инструкцию о том, как создать своего личного бота ChatGPT в Telegram практически даром. Инструкция рассчитана на рядового пользователя, следуя ей, запустить своего бота сможет даже человек, не имеющий знаний в программировании.
Подготовка
- Для начала вам потребуется аккаунт на сайте OpenAI. Если у вас его до сих пор нет, то в самом конце этой статьи инструкция по его созданию. Для регистрации аккаунта потребуется виртуальный номер, минимальная стоимость которого на текущий момент составляет около 20 рублей.
- Далее включите VPN и перейдите в раздел для разработчиков здесь:
- Создайте API ключ, нажав на копку «Create new secret key». Запишите его, он понадобится позже.
- Затем создайте бота в Telegram. Для этого откройте BotFather и введите команду /newbot.
- Назовите его. Затем пропишите боту ссылку, которая обязательно заканчивается на bot. И сохраните API ключ от бота Telegram. Он также понадобится позже.
- Итого у вас должно быть 2 ключа: OpenAI и Telegram.
Установка
Далее установите Python на свой компьютер. В начале установки обязательно поставьте галочку «Add python.exe to PATH», иначе в консоли не будут работать команды.
- Скачайте готовый код бота на GitHub от пользователя n3d1117. Для этого нажмите на зелёную кнопку Code –> Download ZIP. Распакуйте папку из архива в любое удобное место, но желательно без кириллицы в пути.
- Откройте файл под названием .env.example через любой текстовый редактор (блокнот, notepad++, EmEditor).
- В поле OPENAI_API_KEY=»XXX» вместо XXX вставьте ваш ключ OpenAI
- В поле TELEGRAM_BOT_TOKEN=»XXX» вместо XXX вставьте ваш ключ Telegram-бота.
- В поле ALLOWED_TELEGRAM_USER_IDS=»USER_ID_1,USER_ID_2″ вместо USER_ID_1,USER_ID_2 вставьте символ * – тогда бот будет доступен для всех пользователей. Если вы желаете сделать его доступным только для себя, то введите свой Telegram ID. Узнать его можно здесь.
- После этого переименуйте «.env.example» в «.env».
- Далее кликните на путь папки сверху и введите в нём слово powershell и нажмите Enter. Откроется PowerShell сразу с учётом расположения папки вашего бота.
В открытой консоли пропишите следующие команды по порядку:
python -m pip install —upgrade pip
Установка и/или обновление pip
pip install python-telegram-bot
Установка библиотеки Telegram
pip install openai
Установка библиотеки OpenAI
pip install pydub
Установка аудиобиблиотеки
Также можете скачать FFmpeg для работы с аудио и видео, но это необязательно. Текстовый бот будет работать и без этого дополнения. (Из архива нужно вытащить ffmpeg.exe и поместить в корневую папку).
python -m venv venv
Подготовка к запуску виртуального окружения
venvScriptsactivate
Запуск
pip install -r requirements.txt
Установка подходящих параметров
python bot/main.py
Запуск самого бота
После этого бот должен начать работать. И им уже можно пользоваться. Для отключения бота просто закройте консоль.
Пример успешной работы бота:
Бот будет работать пока запущена консоль. Соответственно, чтобы его выключить, достаточно её закрыть. Чтобы запустить бота повторно, все перечисленные выше команды снова вводить не нужно, достаточно лишь так же открыть PowerShell в папке и прописать всего две команды.
venvScriptsactivate
python bot/main.py
Особенности и ограничения:
- API-версия генерирует текст гораздо быстрее своей бесплатной браузерной версии, примерно на уровне Plus версии.
- API-версия работает всегда, даже в период нагрузок, также вам не требуется VPN для её использования.
- Используйте /help, чтобы получить список доступных команд
- Подобно браузерному ChatGPT, API-версия запоминает информацию в диалоге.
- Чтобы стереть боту память о беседе, используйте команду /reset. Также после этой команды можно ввести уточнение для бота, чтобы направить его в нужное русло. Например, с помощью «/reset Говори только на русском» можно заставить использовать русский язык по умолчанию.
- С помощью команды /image можно генерировать картинки с помощью DALL-E по описанию.
- Через команду /stats можно проверить затраты на использование бота.
- Также вы можете добавить бота в беседу и общаться с ним вместе с друзьями. (для этого нужно разрешить добавление в беседу в настройках BotFather).
А теперь к ограничениям:
Увы, но API не бесплатное, у всех пользователей есть бесплатный пробный период в 3 месяца с момента регистрации. Он также ограничен количеством бонусных долларов, по исчерпанию которых API перестанет работать.
Количество бонусных долларов зависит от даты регистрации вашего аккаунта. На моём аккаунте, который был зарегистрирован в первые дни запуска ChatGPT, было предоставлено бонусов в размере $18. Это очень много, если вы используете бота в одиночку, то вам более чем хватит этого на месяц или два активного использования.
Однако в последнее время новым аккаунтам стали давать более скромный бонус – $5, которого хватит где-то на пару недель активного использования. Статистку использования вы можете отследить на сайте OpenAI или в самом боте по команде /stats.
Также следует отметить ещё пару важных фактов:
- Подключить версию GPT-4 на данный момент нельзя, даже если у вас есть Plus. API GPT-4 на текущий момент находится в закрытом доступе.
- Запущенная через API версия фактически незначительно отличается от браузерной ChatGPT. Браузерная версия была доработана, чтобы быть ассистентом, а также содержит больше уточняющей информации о себе, в то время как API-версия «более обезличенная» и даже не называет себя ChatGPT.
- В этом плане API версия сильно напоминает декабрьский ChatGPT, который даже не мог назвать актуальную дату. Однако всё же знания у ботов общие, поэтому беспокоиться за качество ответов не стоит.
- Для тех кому интересно, по умолчанию в боте используется модель gpt-3.5-turbo. Какие ещё существуют модели можете посмотреть здесь.
Источник: kod.ru