V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DennyDai
V2EX  ›  问与答

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

  •  
  •   DennyDai · 2015-05-27 20:09:52 +08:00 · 7950 次点击
    这是一个创建于 3477 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    :)

    2 条回复    2015-05-28 13:22:48 +08:00
    cbsw
        1
    cbsw  
       2015-05-27 23:23:25 +08:00   ❤️ 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
       2015-05-28 13:22:48 +08:00 via Android
    @cbsw Thx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:36 · PVG 01:36 · LAX 09:36 · JFK 12:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.