DennyDai
V2EX  ›  问与答

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

  •  
  •   DennyDai · May 27, 2015 · 8434 views
    This topic created in 4029 days ago, the information mentioned may be changed or developed.

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

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

    :)

    2 replies    2015-05-28 13:22:48 +08:00
    cbsw
        1
    cbsw  
       May 27, 2015   ❤️ 4
    之前研究过几天,也准备自己写一个玩的,后来实在没时间,希望以后有空能写一个出来。

    说一下我个人的理解吧:
    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
        2
    DennyDai  
    OP
       May 28, 2015 via Android
    @cbsw Thx
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5879 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 01:51 · PVG 09:51 · LAX 18:51 · JFK 21:51
    ♥ Do have faith in what you're doing.