xtaothon/source/start/auth.rst
2021-06-11 20:03:48 +08:00

65 lines
2.1 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

: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