TDLib

tdweb 浏览器客户端接入

创建 TdClient、发送请求并处理更新,理解 JSON 字段、int64、bytes 与 @extra 的映射。

GetTGAPI 编辑团队更新于
TDLib 文档核对日期

来源版本 a94b83d67ab4 · TDLib contributors · BSL-1.0

依据官方资料整理,由 GetTGAPI 独立维护。 文档目录与术语表 →

本页内容
  1. 开始之前
  2. tdweb:浏览器中的 TDLib
  3. 安装

开始之前

浏览器中的 TDLib 会处理账号会话与持久数据,发布网页前需要设计清除会话和存储的入口。尤其要按文档将 int64 保留为字符串,避免 JavaScript Number 精度丢失。

tdweb:浏览器中的 TDLib

TDLib 是用于构建 Telegram 客户端的库。tdweb 是面向浏览器的便捷封装,负责创建 TDLib 实例、处理与 TDLib 的交互,并管理用于持久保存 TDLib 数据的文件系统。

要与 TDLib 交互,需要创建 TdClient 类的实例,提供接收更新的处理器,并按需传入其他选项。 完成后,可以通过 TdClient.send 方法向 TDLib 实例发送请求;该方法返回一个表示请求结果的 Promise 对象。

有关 TDLib 的基本概念和简要用法,参见 入门指南。

所有可用 TDLib 方法 和 类,见 td_api.tl 模式文件或自动生成的 HTML 文档。

TDLib API 对象的 JSON 表示很直接:所有 API 对象都表示为 JSON 对象,其键名与 td_api.tl 模式中的字段名相同。自动生成的 C++ 文档在所有字段末尾额外加了一个下划线;JSON 接口中不应使用该下划线。对象类型名称放在特殊字段 '@type' 中;当上下文能唯一确定类型时,此字段可以省略。

Bool 类型字段存为 Boolean;int32、int53 和 double 类型字段存为 Number;int64 和 string 类型字段存为 String;bytes 类型字段先进行 base64 编码,再存为 String;array 类型字段存为 Array。

还可以在发给 TDLib 的任意请求中加入 '@extra' 字段,响应会带回值完全相同的 '@extra' 字段。

安装

像通常添加 npm 包一样,将 tdweb 加入项目:

npm install tdweb

所有文件会安装到 node_modules/tdweb/dist/ 目录。目前需要你自行确保服务器可以加载这些文件。例如,telegram-react 会手动将这些文件复制到 public 目录。原作者也欢迎提供不必这样处理的解决办法。

继续阅读 TDLib 总览与构建。需要应用凭证时,可参考 API ID 与 Hash 申请流程;申请遇到 ERROR,可通过 GetTGAPI 客服 沟通。

原文许可与归属 · BSL-1.0

TDLib contributors · 完整许可文件

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.