65 lines
2.1 KiB
ReStructuredText
65 lines
2.1 KiB
ReStructuredText
:github_url: https://github.com/Xtao-Labs/docs-all
|
||
|
||
授权
|
||
=============
|
||
|
||
本节教程将会教会您如何使用 Telethon 登录 Bot 或者 User 。
|
||
|
||
.. contents:: 目录
|
||
:backlinks: none
|
||
:depth: 1
|
||
:local:
|
||
|
||
-----
|
||
|
||
API key
|
||
------------------
|
||
|
||
在 :doc:`快速开始 <../intro/quickstart>` 中需要您申请属于您自己的 Telegram API key 。
|
||
|
||
#. 访问 https://my.telegram.org/apps 并且使用您的 Telegram 账户登录。
|
||
#. 填写表格以注册新的 Telegram 应用程序。
|
||
#. 完成! API key 由这两个值组成: **api_id** 和 **api_hash**.
|
||
|
||
|
||
.. note::
|
||
|
||
API key 对每个用户是唯一的,并且仅一个值就可以授权多个 User (和 bot) 通过 MTProto API 访问 Telegram 数据库。
|
||
|
||
登录
|
||
------------------
|
||
|
||
为了使用这个 API, Telegram 要求用户通过电话号码授权。
|
||
Telethon 将会自动处理此过程,您需要做的只是创建一个实例 :class:`~telethon.Client` 类并且定义一个 ``session_name`` (e.g.: "my_account")
|
||
并且调用 :meth:`~telethon.Client.start` 方法:
|
||
|
||
.. code-block:: python
|
||
|
||
from telethon import TelegramClient
|
||
|
||
client = TelegramClient('my_account', api_id, api_hash)
|
||
|
||
# 使用 Bot token 登录
|
||
await client.start(bot_token='bot_token')
|
||
|
||
# 使用 User 账户登录
|
||
await client.start()
|
||
# Enter phone number: +86**********
|
||
# Please enter the code you received: 12345
|
||
# Please enter your password: *******
|
||
# (You are now logged in)
|
||
|
||
# 使用一个 context manager 来登录 (这相当于直接调用 start()):
|
||
with client:
|
||
pass
|
||
|
||
这会创建一个交互 Shell 要求您输入 **电话号码** (包括您的 `国家代码`_) 和 **验证码**:
|
||
|
||
成功登录后,将创建一个名为 ``my_account.session`` 的新文件,允许 Telethon 使用您的登录的账户信息执行 API。
|
||
重新启动应用程序时,将自动加载此文件,只要您的账户登录文件还是可用的,Telethon 将不会要求您重新登录。
|
||
|
||
.. important::
|
||
|
||
您的 ``*.session`` 文件是私密的并且必须保证安全。
|
||
|
||
.. _国家代码: https://en.wikipedia.org/wiki/List_of_country_calling_codes |