
Мы сделали вас оберткой, которую вы не можете отказаться
У нас есть живое сообщество разработчиков, помогающих друг другу в нашей группе телеграммы. Присоединяйтесь к нам!
Следите за обновлениями библиотеки и новыми выпусками на нашем канале Telegram.
Эта библиотека предоставляет чистый питон, асинхронный интерфейс для API Telegram Bot. Он совместим с версиями Python 3.9+ .
В дополнение к реализации Pure API, в этой библиотеке есть несколько удобных методов и ярлыков, а также ряд классов высокого уровня, чтобы сделать разработку ботов простыми и простыми. Эти классы содержатся в подмодуле telegram.ext .
После установки библиотеки обязательно ознакомьтесь с разделом о работе с PTB.
Все типы и методы API Telegram Bot API 7.11 изначально поддерживаются этой библиотекой. Кроме того, функциональность BOT API, еще не включенная, все еще можно использовать, как описано в нашей вики.
Вы можете установить или обновить python-telegram-bot через
$ pip install python-telegram-bot --upgrade Чтобы установить предварительную релиз, используйте флаг --pre дополнительно.
Вы также можете установить python-telegram-bot из Source, хотя это обычно не требуется.
$ git clone https://github.com/python-telegram-bot/python-telegram-bot
$ cd python-telegram-bot
$ pip install build
$ python -m build Чтобы позволить вам проверить, что загружаемый вами файл выпуска действительно был предоставлен командой python-telegram-bot , мы приняли следующие меры.
Начиная с V21.4, все релизы подписаны через Sigstore. Соответствующие подписные файлы загружаются на страницу GitHub Releses. Чтобы проверить подпись, установите клиент Sigstore Python и следуйте инструкциям для проверки подписей из действий GitHub. В качестве ввода для параметра --repository , пожалуйста, используйте значение python-telegram-bot/python-telegram-bot .
Ранние релизы подписаны с ключом GPG. Подписи загружаются как на страницу Github Relases, так и проект PYPI и заканчиваются суффиксом .asc Пожалуйста, найдите здесь общественные ключи. Ключи названы в формате <first_version>-<last_version>.gpg .
Кроме того, страница выпуска GitHub также содержит хэши SHA1 файлов выпуска в файлах с суффиксом .sha1 .
python-telegram-bot пытается использовать как можно меньше сторонних зависимостей. Тем не менее, для некоторых функций, используя стороннюю библиотеку, более здраво, чем реализация функциональности. Поскольку эти функции не являются обязательными , соответствующие сторонние зависимости не устанавливаются по умолчанию. Вместо этого они перечислены как необязательные зависимости. Это позволяет избежать ненужных конфликтов зависимости для пользователей, которым не нужны дополнительные функции.
Единственной необходимой зависимостью является httpx ~ = 0,27 для telegram.request.HTTPXRequest , бэкэнд сети по умолчанию.
python-telegram-bot наиболее полезен при использовании вместе с дополнительными библиотеками. Чтобы свести к минимуму конфликты зависимости, мы стараемся быть либеральными с точки зрения требований версии на (необязательные) зависимости. С другой стороны, мы должны обеспечить стабильность python-telegram-bot , поэтому мы применяем границы версий. Если вы сталкиваетесь с конфликтами зависимости из -за этих границ, не стесняйтесь протянуть руку.
PTB может быть установлен с дополнительными зависимостями:
pip install "python-telegram-bot[passport]" Устанавливает криптографию> = 39.0.1 Библиотека. Используйте это, если вы хотите использовать функциональность, связанные с паспортом Telegram.pip install "python-telegram-bot[socks]" Устанавливает httpx [socks]. Используйте это, если вы хотите работать за сервером Socks5.pip install "python-telegram-bot[http2]" Устанавливает httpx [http2]. Используйте это, если вы хотите использовать HTTP/2.pip install "python-telegram-bot[rate-limiter]" Устанавливает Aiolimiter ~ = 1,1,0. Используйте это, если вы хотите использовать telegram.ext.AIORateLimiter .pip install "python-telegram-bot[webhooks]" Устанавливает библиотеку Tornado ~ = 6.4. Используйте это, если вы хотите использовать telegram.ext.Updater.start_webhook / telegram.ext.Application.run_webhook .pip install "python-telegram-bot[callback-data]" Устанавливает Cachetools> = 5.3.3, <5.6.0 Библиотека. Используйте это, если вы хотите использовать произвольный Callback_data.pip install "python-telegram-bot[job-queue]" Устанавливает библиотеку apscheduler ~ = 3.10.4 и обеспечивает соблюдение pytz> = 2018.6, где pytz является зависимостью APScheduler . Используйте это, если вы хотите использовать telegram.ext.JobQueue . Чтобы установить несколько дополнительных зависимостей, разделить их от запятых, например, pip install "python-telegram-bot[socks,webhooks]" .
Кроме того, предоставляются два ярлыка:
pip install "python-telegram-bot[all]" Устанавливает все дополнительные зависимости.pip install "python-telegram-bot[ext]" Устанавливает все дополнительные зависимости [rate-limiter, webhooks, callback-data, job-queue] связанные с telegram.ext , т. Е. Как только вы установили библиотеку, вы можете начать работать с ней - так что давайте начнем!
Наш вики содержит введение в API, объясняющий, как доступ к API чистого бота с помощью python-telegram-bot . Кроме того, учебное пособие: ваш первый бот дает представление о том, как чат -боты могут быть легко запрограммированы с помощью модуля telegram.ext .
python-telegram-bot . Он содержит описания всех доступных классов, модулей, методов и аргументов, а также ChangeLog.python-telegram-bot и других полезных ресурсов, выходящих за рамки технической документации.python-telegram-bot . Даже если это не ваш подход к обучению, посмотрите на echobot.py . Это фактическая база для большинства ботов там. Код для этих примеров публикуется в общественном домене, поэтому вы можете начать с захвата кода и построения над ним.Если упомянутые выше ресурсы не отвечают на ваши вопросы или просто переполняют вас, есть несколько способов получить помощь.
Начиная с V20.0, python-telegram-bot строится на вершине модуля Pythons asyncio . Поскольку asyncio в целом является однопользованным, python-telegram-bot в настоящее время не стремится быть защищенным потоком. Примечательные части API python-telegram-bots , которые могут вызвать проблемы (например, условия гонки) при использовании в многопоточной обстановке, включают в себя:
telegram.ext.Application/Updater.update_queuetelegram.ext.ConversationHandler.check/handle_updatetelegram.ext.CallbackDataCachetelegram.ext.BasePersistencetelegram.ext.filters , которые позволяют добавлять/удалять допустимых пользователей/чатов во время выполнения Взносы всех размеров приветствуются. Пожалуйста, просмотрите наши рекомендации по вкладу, чтобы начать. Вы также можете помочь, сообщив об ошибках или запросах функций.
Иногда нас спрашивают, принимаем ли мы пожертвования для поддержки развития. Хотя мы ценим эту мысль, поддержание PTB - это наше хобби, и у нас почти нет затрат на выполнение. Поэтому у нас нет ничего настроенного, чтобы принять пожертвования. Если вы все еще хотите пожертвовать, мы просим вас пожертвовать в другой проект/инициативу с открытым исходным кодом по вашему выбору.
Вы можете копировать, распространять и изменять программное обеспечение при условии, что модификации описаны и лицензированы бесплатно под LGPL-3. Деривативные работы (включая модификации или что-либо, статически связанное с библиотекой) могут быть перераспределены только в рамках LGPL-3, но приложения, которые используют библиотеку, не должны быть.