有人看得懂 Telegram 的 API 怎么用么

2015-05-27 20:09:52 +08:00
 DennyDai

https://core.telegram.org/
写bot用的telegram-cli+socket。。。
还要专门运行个cli...

想问问Telegram的API大概是什么意思,求简单描述一下。
Thx

:)

7885 次点击
所在节点    问与答
2 条回复
cbsw
2015-05-27 23:23:25 +08:00
之前研究过几天,也准备自己写一个玩的,后来实在没时间,希望以后有空能写一个出来。

说一下我个人的理解吧:
TG 定义了一套通信协议,就是所谓的 TL-schema (https://core.telegram.org/schema),current TL-schema 是 layer 23,即协议的版本号,里面定义了数据如何表示。协议包含一个小的语言:TL language,利用这个语言编写程序,由两部分组成,用 ---functions--- 分开,第一部分是数据定义,第二部分是函数,文档上面给了一个示例: https://core.telegram.org/mtproto/TL#example 其中 # 号后面那8个字符(16进制)是 CRC32 校验,可以省略,比如示例中第一句 `int#a8509bda ? = Int;` 你把 int ? = Int 扔到 http://www.tools4noobs.com/online_php_functions/crc32/ 里面就会得到 a8509bda

有了 TL 程序之后,把 CRC32 提取出来,发送给服务器,服务器会回应一个同样方式编码的数据,再将其解码出来即可。当然为了移动端应用编写方便,TG 还提供 json 形式的 TL-schema: https://core.telegram.org/schema/json 这个就比较容易理解了。

其业务逻辑与通常的应用差不多,就是先从 TG 获得一个 id 和 key,然后利用第一次与服务器通信时带上 id, key,同时提供用户信息(手机号),服务器会发送一个 code 到手机,与淘宝的校验码一样。输入这个 code 后即可登录,之后就是正常的 client-server 通信了,通信数据以上面两种方式中的一种编解码发送,当然 TG 官方要求必须加密传输用户数据。

以上是我对 TG 的理解,还有很多细节没有仔细研究,有些说法可能也不准确,仅供 LZ 参考,一切还是要以官方文档为主
DennyDai
2015-05-28 13:22:48 +08:00
@cbsw Thx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX