Pure Python 3 MTProto API Telegram client library, for bots too!
Go to file
Lonami Exo ceb37cd4c5 Move auth_key generation and InitConnection logic to .invoke()
The reasoning behind this is that .connect() should not call
any request at all, it should only connect to the servers
although it currently still calls GetStateRequest.

There were some issues (#291, #360) where the auth_key was None
(possibly due to .connect() returning False), so this may
fix some of the cases where it returned False. This way we also
ensure that we always have an auth_key, or even if it "breaks"
(it's not the right key for the server anymore).

A few additional changes have been introduced to accommodate
this, such as moving InitConnection logic too or importing auths.
2017-10-24 15:40:51 +02: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
telethon Move auth_key generation and InitConnection logic to .invoke() 2017-10-24 15:40:51 +02:00
telethon_examples Document the InteractiveTelegramClient more nicely 2017-10-21 16:21:58 +02:00
telethon_generator Avoid cyclic imports caused by #348 (fix #357) 2017-10-24 10:07:31 +02:00
telethon_tests Update test for key generation via nonces (#323) 2017-10-11 23:26:13 +02:00
.gitignore Generate and fetch new errors from setup.py 2017-10-20 17:29:45 +02: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 Revert "Designed Logo, added to README (#283)" 2017-10-03 09:23:22 +02:00
run_tests.py Make lint happier 2017-09-04 17:10:04 +02:00
setup.py Fix setup.py if/elif/else chain 2017-10-22 13:57:02 +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)
  client.connect()

  # If you already have a previous 'session_name.session' file, skip this.
  client.sign_in(phone=phone)
  me = client.sign_in(code=77777)  # Put whatever code you received here.


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

.. code:: python

  print(me.stringify())

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

  client.download_profile_photo(me)
  total, messages, senders = client.get_message_history('username')
  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.