Skip to main content

Python library to help you build your own Telegram clients

Project description

python-telegram

Build Status PyPI DockerHub Read the Docs (version)

Python API for the tdlib library. It helps you build your own Telegram clients.

Installation

This library requires Python 3.9+ and Linux or MacOS. Windows is not supported.

pip install python-telegram

See documentation for more details.

tdlib

python-telegram comes with a precompiled tdlib library for Linux and MacOS. But it is highly recommended to compile it yourself. The precompiled library may not work on some systems, it is dynamically linked and requires specific versions of additional libraries.

### Docker

This library has a [docker image](https://hub.docker.com/r/akhmetov/python-telegram/):

```sh
docker run -i -t --rm \
            -v /tmp/docker-python-telegram/:/tmp/ \
            akhmetov/python-telegram \
            python3 /app/examples/send_message.py $(API_ID) $(API_HASH) $(PHONE) $(CHAT_ID) $(TEXT)

How to use the library

Check out the tutorial for more details.

Basic example:

from telegram.client import Telegram
from telegram.text import Spoiler

tg = Telegram(
    api_id='api_id',
    api_hash='api_hash',
    phone='+31611111111',  # you can pass 'bot_token' instead
    database_encryption_key='changekey123',
    files_directory='/tmp/.tdlib_files/',
)
tg.login()

# If this is the first run, the library needs to preload all chats.
# Otherwise, the message will not be sent.
result = tg.get_chats()
result.wait()

chat_id: int
result = tg.send_message(chat_id, Spoiler('Hello world!'))

# `tdlib` is asynchronous, so `python-telegram` always returns an `AsyncResult` object.
# You can receive a result with the `wait` method of this object.
result.wait()
print(result.update)

tg.stop()  # You must call `stop` at the end of the script.

You can also use call_method to call any tdlib method:

tg.call_method('getUser',  params={'user_id': user_id})

More examples can be found in the /examples/ directory.


More information is available in the documentation.

Development

See CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_telegram-0.19.0.tar.gz (20.3 MB view details)

Uploaded Source

Built Distribution

python_telegram-0.19.0-py3-none-any.whl (20.4 MB view details)

Uploaded Python 3

File details

Details for the file python_telegram-0.19.0.tar.gz.

File metadata

  • Download URL: python_telegram-0.19.0.tar.gz
  • Upload date:
  • Size: 20.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for python_telegram-0.19.0.tar.gz
Algorithm Hash digest
SHA256 7b5b2da3d01d4cf5776c92f91fdd35a0f98976eec2356726b338f59ba01d1373
MD5 4742d1f7fba52c775bf663e687e0594b
BLAKE2b-256 4976f102f251f55fa016093f14aa3373c354fef3a2a7cc035dea0d8783c69b4b

See more details on using hashes here.

File details

Details for the file python_telegram-0.19.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_telegram-0.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e1d5e065a000580eeaeb5b608e410651320f5d6c804e8e4e7568b6b614071bc
MD5 7c129e911cfef2a76c630658487388a8
BLAKE2b-256 02178995b7d036c9762f90964fc5897ab46458fcfc1ad1dd27fa063f726854b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page