Pure Python 3 MTProto API Telegram client library, for bots too!
Go to file
yumupdate 8a514c22c7
Update payment.py
LINE 88 LINE 90
causing event.message.from_id error:
2022-12-19 16:51:10,027 - telethon.client.updates - ERROR - Unhandled exception on payment_received_handler
Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\borpayment\venv\Lib\site-packages\telethon\client\updates.py", line 497, in _dispatch_update
    await callback(event)
  File "C:\Users\User\PycharmProjects\borpayment\main.py", line 87, in payment_received_handler
    await bot.send_message(event.message.from_id, 'Thank you for buying product A!')
  File "C:\Users\User\PycharmProjects\borpayment\venv\Lib\site-packages\telethon\client\messages.py", line 827, in send_message
    entity = await self.get_input_entity(entity)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\borpayment\venv\Lib\site-packages\telethon\client\users.py", line 443, in get_input_entity
    peer = utils.get_peer(peer)
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\borpayment\venv\Lib\site-packages\telethon\utils.py", line 997, in get_peer
    _raise_cast_fail(peer, 'Peer')
  File "C:\Users\User\PycharmProjects\borpayment\venv\Lib\site-packages\telethon\utils.py", line 138, in _raise_cast_fail
    raise TypeError('Cannot cast {} to any kind of {}.'.format(
TypeError: Cannot cast NoneType to any kind of Peer.

Changing from event.message.from_id to event.message.peer_id.user_id solves it
2022-12-19 16:52:51 +03:00
.github Replace mentions of master branch with v1 2022-09-20 17:08:53 +02:00
readthedocs Update documentation and list of known errors 2022-12-14 20:00:55 +01:00
telethon Add more debug traces to the messagebox 2022-12-18 12:57:51 +01:00
telethon_examples Update payment.py 2022-12-19 16:52:51 +03:00
telethon_generator Update documentation and list of known errors 2022-12-14 20:00:55 +01:00
tests Fix HTML/MD parser producing empty MessageEntity (#3885) 2022-07-25 11:11:26 +02:00
.coveragerc Add example unit test and config for testing 2019-12-07 04:23:27 +01:00
.gitignore Get rid of the patched/ module 2021-01-14 22:56:55 +01:00
.pre-commit-config.yaml Add pre-commit hooks configuration 2016-11-30 00:29:05 +03:00
dev-requirements.txt Add example unit test and config for testing 2019-12-07 04:23:27 +01:00
LICENSE Update proxy docs and license year 2021-02-12 17:56:46 +01:00
logo.svg Use better practices for logo's svg 2018-06-26 10:12:00 +02:00
optional-requirements.txt Replace PySocks with python-socks for Python >= 3.6 2020-11-09 19:59:54 +01:00
pyproject.toml Update documentation to include the new friendly method 2020-10-05 10:52:42 +02:00
README.rst Bump to v1.25 2022-08-30 12:57:34 +02:00
requirements.txt Remove async_generator from dependencies 2019-02-27 11:13:29 +01:00
setup.py Actually exclude tests from setup.py installation (#1612) 2020-10-27 12:31:31 +01:00
update-docs.sh Replace mentions of master branch with v1 2022-09-20 17:08:53 +02:00

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

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

|logo| **Telethon** is an asyncio_ **Python 3**
MTProto_ library to interact with Telegram_'s API
as a user or through a bot account (bot API alternative).

.. important::

    If you have code using Telethon before its 1.0 version, you must
    read `Compatibility and Convenience`_ to learn how to migrate.

What is this?
-------------

Telegram is a popular messaging application. This library is meant
to make it easy for you to write Python programs that can interact
with Telegram. Think of it as a wrapper that has already done the
heavy job for you, so you can focus on developing an application.


Installing
----------

.. code-block:: sh

  pip3 install telethon


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

.. code-block:: python

    from telethon import TelegramClient, events, sync

    # 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'

    client = TelegramClient('session_name', api_id, api_hash)
    client.start()


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

.. code-block:: python

    print(client.get_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')
    messages = client.get_messages('username')
    messages[0].download_media()

    @client.on(events.NewMessage(pattern='(?i)hi|hello'))
    async def handler(event):
        await event.respond('Hey!')


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

Do you like how Telethon looks? Check out `Read The Docs`_ for a more
in-depth explanation, with examples, troubleshooting issues, and more
useful information.

.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _MTProto: https://core.telegram.org/mtproto
.. _Telegram: https://telegram.org
.. _Compatibility and Convenience: https://docs.telethon.dev/en/stable/misc/compatibility-and-convenience.html
.. _Read The Docs: https://docs.telethon.dev

.. |logo| image:: logo.svg
    :width: 24pt
    :height: 24pt