Python API for the tdlib library. It helps you build your own Telegram clients.
This library requires Python 3.8+ and Linux or MacOS. Windows is not supported.
pip install python-telegram
See documentation for more details.
This library has a docker image:
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)
Have a look at the tutorial :)
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, 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 you 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 you can find in the /examples/ directory.
More information in the documentation.
See CONTRIBUTING.md.