Pure Python 3 MTProto API Telegram client library, for bots too!
Go to file
2017-11-25 18:47:41 +01:00
.github More friendly issue template 2017-09-28 12:20:56 +02:00
api Added custom errors, fixes to code generator 2016-09-05 18:35:12 +02:00
docs Make generated description on the docs more friendly 2017-09-29 12:14:09 +02:00
readthedocs fix in-docs links 2017-11-20 17:26:31 +08:00
telethon Add unparse markdown method 2017-11-25 16:17:00 +01:00
telethon_examples Clear up confusing error and trailing brace (closes #429) 2017-11-14 09:48:40 +01:00
telethon_generator Update scheme to layer 73 2017-11-15 12:22:37 +01:00
telethon_tests Update test for key generation via nonces (#323) 2017-10-11 23:26:13 +02:00
.gitignore Update .gitignore to include docs/_build 2017-11-21 12:56:53 +01:00
.pre-commit-config.yaml Add pre-commit hooks configuration 2016-11-30 00:29:05 +03:00
LICENSE Updated README.md 2016-09-10 14:10:47 +02:00
MANIFEST.in Changed README.md to README.rst 2016-11-13 15:39:47 +01:00
README.rst Update README.rst to show asyncio code (#456) 2017-11-25 18:47:41 +01:00
run_tests.py Make lint happier 2017-09-04 17:10:04 +02:00
setup.py Fix importing dependencies during installing (#384) 2017-10-28 12:21:07 +02:00
try_telethon.py Support configuring SOCKS proxy in the example 2017-06-17 00:17:51 +02:00

Telethon
========
.. epigraph::

  ⭐️ Thanks **everyone** who has starred the project, it means a lot!

**Telethon** is Telegram client implementation in **Python 3** which uses
the latest available API of Telegram. Remember to use **pip3** to install!

Installing
----------

.. code:: sh

  pip install telethon


Creating a client
-----------------

.. code:: python

  from telethon import TelegramClient

  # These example values won't work. You must get your own api_id and
  # api_hash from https://my.telegram.org, under API Development.
  api_id = 12345
  api_hash = '0123456789abcdef0123456789abcdef'
  phone = '+34600000000'

  client = TelegramClient('session_name', api_id, api_hash)
  async def main():
      await client.connect()
      # Skip this if you already have a previous 'session_name.session' file
      await client.sign_in(phone_number)
      me = await client.sign_in(code=input('Code: '))


Doing stuff
-----------

Note that this assumes you're inside an "async def" method. Check out the
`Python documentation <https://docs.python.org/3/library/asyncio-dev.html>`_
if you're new with ``asyncio``.

.. code:: python

  print(me.stringify())

  await client.send_message('username', 'Hello! Talking to you from Telethon')
  await client.send_file('username', '/home/myself/Pictures/holidays.jpg')

  await client.download_profile_photo(me)
  total, messages, senders = await client.get_message_history('username')
  await client.download_media(messages[0])


Next steps
----------

Do you like how Telethon looks? Check the
`wiki over GitHub <https://github.com/LonamiWebs/Telethon/wiki>`_ for a
more in-depth explanation, with examples, troubleshooting issues, and more
useful information. Note that the examples there are written for the threaded
version, not the one using asyncio. However, you just need to await every
remote call.